๐ ํํ ๋ฆฌ์ผ์ ๋ฐ๋ผํ ํ๋ก์ ํธ์ ๋๋ค!
TodoListItem ์ปดํฌ๋ํธ ์์๋ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํ ์ผ ๋ชฉ๋ก ๋ด์ฉ์ด ๋ด๊ธฐ๊ฒ ๋ฉ๋๋ค. ๋ํ ํด๋น ๋ชฉ๋ก์ ์๋ฃํ๋์ง ์ฒดํฌํ ์ ์๋ ์ฒดํฌ ๋ฐ์ค์ ์ญ์ ๋ฒํผ์ ์ถ๊ฐํด๋ด ์๋ค. ์์ด์ฝ์ react-native-vector-icons ์ ์ค์นํด์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
ํฐ๋ฏธ๋์ ๋ค์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํฉ์๋ค!
react-native link react-native-vector-icons
์ฃผ์์ฌํญ
๋๋ ์ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํ๋๊น error๊ฐ ๋์ ์๋์ ๋ช
๋ น์ด๋ฅผ ์์๋๋ก ์
๋ ฅํ๋ค.
๋ช ๋ น์ด
npm install --save react-native-vector-icons
react-native link react-native-vector-icons
error
warn Calling react-native link [packageName] is deprecated in favor of autolinking. It will be removed in the next major release.
Autolinking documentation: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md
(node:15376) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use `node --trace-warnings ...` to show where the warning was created)
error Unknown dependency. Make sure that the package you are trying to link is already installed in your "node_modules" and present in your "package.json" dependencies. Run CLI with --verbose flag for more details.
๋ง์ฝ ์ ๋ช ๋ น์ด๋ฅผ ์คํํด๋ ์ ๋์ง ์๋๋ค๋ฉด react-native-vector-icons README ๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค. ์ค์น ๋ฐฉ๋ฒ๊ณผ ์ค๋ฅ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์์ธํ ๋์์์ต๋๋ค.
react-native-vector-icons๋ ๋ค์ํ ์์ด์ฝ์ ์ ๊ณตํฉ๋๋ค. ์ฒจ๋ถํ ๋งํฌ์ ๋ค์ด๊ฐ์ ๋ณธ์ธ ์ทจํฅ์ ๋ฐ๋ผ ๋ค์ํ ์์ด์ฝ์ ์ ํํด ์ฌ์ฉํ์๋ฉด ๋ฉ๋๋ค. https://oblador.github.io/react-native-vector-icons/
import Icon from 'react-native-vector-icons/AntDesign';
const styles = StyleSheet.create({
...
completeCircle: {
marginRight: 20,
marginLeft: 20,
},
strikeText: {
color: '#bbb',
textDecorationLine: 'line-through',
},
unstrikeText: {
color: '#29323c',
},
buttonContainer: {
marginVertical: 10,
marginHorizontal: 10,
},
});
const TodoListItem = () => {
return (
<View style={styles.container}>
<TouchableOpacity>
<View style={styles.completeCircle}>
<Icon name="circledowno" size={30} color="#3143e8" />
</View>
</TouchableOpacity>
<Text style={[styles.text, styles.strikeText]}>
Items will be shown here
</Text>
</View>
);
};
์ด๊ฒ ์ ์
๋๋ ๋น์ ์
<TouchableOpacity style={styles.buttonContainer}>
<Text style={styles.buttonText}>
<Icon name="delete" size={30} color="#e33057" />
</Text>
</TouchableOpacity>
์ด๊ฒ ์ ์
๋๋ ๋น์ ์
๋ชจ๋ฅด๊ฒ ๊ณ ์ง๊ธ ํ๊ณ ์๋ ๊ฒ๋ค
npm install --save-dev @types/react-native-vector-icons
android/app/build.gradle์
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"
react-native link react-native-vector-icons
4์๊ฐ ๋์ ์จ๋ฆํ๋๋ฐ ๊ฑ ํฌ๊ธฐํ๋ ต๋๋ค. ์ด๊ฑฐ ๋ฌธ์ ๊ณ ์น๋ ๋ฐฉ๋ฒ ์์๋ฉด ์ ๋ฐ ์๋ ค์ฃผ์ธ์ real plz
https://phant0m.tistory.com/20 ์ฌ๊ธฐ ์ฌ์ดํธ ๋ค์ด๊ฐ์ ํด๋ณด๋ฉด ์ ๋ฉ๋๋ค
ํด๊ฒฐ๋ฐฉ๋ฒ ์ค ํ๋ ์ ๋๋ค.
// android
// '๋ฃจํธ ํด๋'/android/app/build.grandle์ ์๋ ์ฝ๋ ์ฝ์
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"