React Native

[React-Native] React-Native Icon 적용

sayhee 2022. 10. 17. 16:38
728x90

안녕하세요 세히이 입니다 며칠 시도하다 Icon 넣기를 결국 성공시켰답니다...!! 간단한 것이여도 꼬이면 참 힘든 것 같아요 ㅠ ㅠ

 

먼저 Icon 사용을 위해 npm으로 설치 ( yarn 으로 설치해도 되는데 전 npm을 사용했어요 )
  npm install --save react-native-vector-icons

 

yarn 으로 설치 
yarn add react-native-vector-icons

 

android > app > build.gradle ( 경로 중요 !!!! )

apply from: "../../node_modules/react-native/react.gradle" // 원래 작성되어 있는 코드
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" // add this line

 

node_modules > react-native-vector-icons > Fonts 안에 파일들이 있는데 이것을 복사  ( ctrl 누른채로 모두 선택 )

 

android > app > src > main > assets > Fonts 폴더에 붙여넣기 ( assets 폴더가 없다면 만드시면 됩니다 )

 

아이콘 import 시켜준뒤 원하는 아이콘 사용
import React, { Component } from "react";
import { View, FlatList, StyleSheet,Text } from 'react-native';
import { NavigationContainer } from '@react-navigation/native';
//Stack 과 Tab
import { createNativeStackNavigator } from '@react-navigation/native-stack'; 
import { createBottomTabNavigator } from "@react-navigation/bottom-tabs";
//경로를 위한 import
import Product from "./Components/Product";
import UploadProduct from "./Components/UploadProduct";
import Home from "./Components/Home";
//아이콘을 위한 import
import Icon from 'react-native-vector-icons/MaterialIcons';

const Stack = createNativeStackNavigator();//Stack 일 경우
const Tab = createBottomTabNavigator(); //Tab 일 경우
class App extends Component {
  render() {
    return (
      <>
        <NavigationContainer>
          <Tab.Navigator initialRouteName="Home">
            <Tab.Screen name="Home" component={Home} options={{
              title: '홈',
              tabBarIcon: ({color, size}) => (
                <Icon name="home" color={color} size={size} />
              ),
            }} /> 
          <Tab.Screen name="Upload" component={UploadProduct} options={{
              title: '업로드',
              tabBarIcon: ({color, size}) => (
                <Icon name="person" color={color} size={size} />
              ),
            }}  />
          <Tab.Screen name="Product" component={Product}  options={{
              title: '리스트',
              tabBarIcon: ({color, size}) => (
                <Icon name="list" color={color} size={size} />
              ),
            }} />
          </Tab.Navigator>
        </NavigationContainer>
      </>
    );
  }
}

export default App;

 

원래 있던 코드에서 추가 시켜준 코드 

 

import Icon from 'react-native-vector-icons/MaterialIcons';
options={{
              title: '홈',
              tabBarIcon: ({color, size}) => (
                <Icon name="home" color={color} size={size} />
              ),
            }}

https://fonts.google.com/icons?selected=Material+Icons  ---> 요기에서 원하는 아이콘 이름을 선택하면 적용됨 

 

결과