Frontend/REACT_NATIVE

REACT-NATIVE - svg 사용하는 법

<zinny/> 2022. 7. 4. 19:21
728x90

1. 설치하기 

yarn add react-native-svg
yarn add react-native-svg-transformer

2. metro.config.js파일 수정

/* 기존 */
module.exports = {
  transformer: {
    getTransformOptions: async () => ({
      transform: {
        experimentalImportSupport: false,
        inlineRequires: true,
      },
    }),
  },
};


/* 수정 */
const { getDefaultConfig } = require("metro-config");

module.exports = (async () => {
  const {
    resolver: { sourceExts, assetExts }
  } = await getDefaultConfig();
  return {
    transformer: {
      babelTransformerPath: require.resolve("react-native-svg-transformer")
    },
    resolver: {
      assetExts: assetExts.filter(ext => ext !== "svg"),
      sourceExts: [...sourceExts, "svg"]
    }
  };
})();

3. declarations.d.ts 파일 생성하기 (위치는 가장 밖) : 타입스크립트 사용자만

 

declare module "*.svg" {
  import React from 'react';
  import { SvgProps } from "react-native-svg";
  const content: React.FC<SvgProps>;
  export default content;
}

 

다시 yarn run ios 해주면 끝 

 

import People from "../assets/people.svg";

<People width={160} height={60} />
728x90