πŸ“Œ 문제 상황: SVG의 동적 μˆ˜μ • ν•„μš”

일반적인 React Native ν”„λ‘œμ νŠΈμ—μ„œλŠ” SVG νŒŒμΌμ„ importν•˜μ—¬ μ»΄ν¬λ„ŒνŠΈλ‘œ μ‚¬μš©

import Logo from '../../assets/logo.svg';

export default function App() {
    return <Logo width={100} height={100} />;
}

image.png

μš”κ΅¬μ‚¬ν•­: SVG(지도)μ—μ„œ 눌린 λΆ€λΆ„μ˜ 색이 λ³€ν•˜κ²Œ λ§Œλ“€μ–΄ μ£Όμ„Έμš”

β€’ SVGλŠ” λΉŒλ“œ μ‹œμ μ—μ„œ λ¦¬μ•‘νŠΈ μ»΄ν¬λ„ŒνŠΈν™”λ˜λ―€λ‘œ λŸ°νƒ€μž„μ— SVG 내뢀값을 λ³€κ²½ν•˜λŠ” 방식이 μ œν•œμ 

πŸ‘‰ λ”°λΌμ„œ, SVG 데이터λ₯Ό λ™μ μœΌλ‘œ μˆ˜μ •ν•˜λ €λ©΄ XML λ¬Έμžμ—΄μ„ 직접 λΆˆλŸ¬μ™€ λ Œλ”λ§ν•΄μ•Ό 함

πŸ“Œ SVG XML을 λ¬Έμžμ—΄λ‘œ λΆˆλŸ¬μ™€ λ Œλ”λ§ν•˜λŠ” 방식

import { SvgXml } from 'react-native-svg';
import svgString from '../../assets/images/1.js'; 
// SVG λ¬Έμžμ—΄μ΄ export λ˜μ–΄μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

export default function App() {
    return (
        <View style={styles.container}>
            <SvgXml xml={svgString} width="400" height="400" />
        </View>
    );
}

react-native-svg의 SvgXml μ»΄ν¬λ„ŒνŠΈλ‘œ 슀트링 ν˜•μ‹μœΌλ‘œ μž„ν¬νŠΈ 된 Svgλ₯Ό λ Œλ”

β€’ SVG λ‚΄λΆ€ 데이터λ₯Ό λ¬Έμžμ—΄λ‘œ μ‘°μž‘ κ°€λŠ₯ (ex. 색상, 크기 λ³€κ²½)

β€’ SVG μ»΄ν¬λ„ŒνŠΈ λŒ€μ‹  xml을 직접 λ Œλ”λ§ β†’ 동적 μˆ˜μ • κ°€λŠ₯