서론
대상독자
RN 개발 시, svg 파일을 사용하고 싶은 개발자
학습목표
오늘은 RN Expo 환경에서 svg 파일을 불러오는 방법에 대해서 알아보겠습니다.
본론
react-native-svg와 react-native-svg-transformer 설치하기
yarn add react-native-svg react-native-svg-transformer
react-native-svg와 react-native-svg-transformer란 라이브러리를 설치해줍니다.
metro.config.js 수정하기
그런 뒤, metro.config.js 파일에서 아래와 같이 설정해줍니다.
const { getDefaultConfig } = require("expo/metro-config");
module.exports = (() => {
const config = getDefaultConfig(__dirname);
const { transformer, resolver } = config;
config.transformer = {
...transformer,
babelTransformerPath: require.resolve("react-native-svg-transformer"),
};
config.resolver = {
...resolver,
assetExts: resolver.assetExts.filter((ext) => ext !== "svg"),
sourceExts: [...resolver.sourceExts, "svg"],
};
return config;
})();
type 정보 추가하기
기본적으로 .svg란 파일을 타입 체커가 인식하지 못하므로 타입 정보를 따로 추가해줘야 합니다. 아래와 같이 말이죠.
declare module "*.svg" {
import React from "react";
import { SvgProps } from "react-native-svg";
const content: React.FC<SvgProps>;
export default content;
}
svg 파일 불러와 사용하기
마지막으로 svg 파일 불러와 리액트 컴포넌트 상에서 사용해보겠습니다. 아래처럼 사용하시면 됩니다.
import GoogleLogo from "./assets/Icons/Login/Google.svg";
...
return(
<GoogleLogo />
)
}
반응형
'Framework > React & RN' 카테고리의 다른 글
[Expo 44] 최신 Expo 환경에서 구글 로그인 구현하는 방법 (0) | 2022.04.01 |
---|---|
React Native/Typescript 환경에서 Styled-component를 사용하는 방법 (0) | 2022.04.01 |
[React] 함수형 컴포넌트와 클래스 컴포넌트의 차이점 (0) | 2022.03.30 |
ReactNative 개발, 어떻게 시작하면 좋을까? (2) | 2021.12.29 |
[FE] 프론트엔드에서의 상태관리란 무엇인가? (1) 등장배경과 정의 (0) | 2021.11.06 |
댓글