React 2022. 1. 11. 21:33

React svg 파일 import 하는 방법 - Failed to execute 'createElement' 에러 해결법

React는 svg 파일을 사용할 수 있다. 다른 이미지들처럼 <img src=의 값으로도 사용 가능하고, 리액트에서 svg 태그가 사용 가능하기 때문에 svg 파일도 리액트 컴포넌트로 import할 수 있다. 리액트 컴포넌트로 import했을 때는 css를 이용해서 벡터 이미지 스타일을 수정할 수 있는 장점이 있다. react component로의 import가 가능한 이유와 import {default as blahBlah} "./bar.svg의 차이는 다른 포스팅에서 탐구해 보도록 하겠다. (아마 webpack 때문일 것이다) 이 글에서는 svg 파일을 리액트 컴포넌트로 import 하는 방법을 소개한다.

 

import {ReactComponent as MyIcon} from './myIcon.svg';

import ReactComponent로 불러올 수 있다. 이 때 주의할 점은 다른 이미지 파일처럼import { default ...를 사용하는 것이 아니라는 것이다. import { default ... 를 하면 다른 이미지 파일처럼 url 형태의 string으로 import된다. 그렇게 하면 img src의 값으로 사용할 수는 있지만 태그로 둘러썬 리액트 컴포넌트로는 활용할 수 없다.

 

Failed to execute 'createElement' 에러는 svg 파일을 import {default ... 또는 import fooImg from "./foo.svg" 형식으로 import하여 string 타입으로 import하고는 <fooImg /> 처럼 리액트 컴포넌트로 활용하려고 할 때 발생한다. 리액트 컴포넌트로 import할 때는 default import가 아닌 ReactComponent로 import해야 하니 주의하자!

저작자표시 (새창열림)

'React' 카테고리의 다른 글

[React] 뒤로가기 이벤트를 탐지하는 방법 (react router v6 적용 가능)  (3) 2022.01.19
useEffect() clean up은 언제 동작할까?  (0) 2022.01.17
Apollo codegen globalTypes.ts 경로 변경하는 법 (Relative imports outside of src/ are not supported 에러)  (0) 2022.01.04
'React' 카테고리의 다른 글
  • [React] 뒤로가기 이벤트를 탐지하는 방법 (react router v6 적용 가능)
  • useEffect() clean up은 언제 동작할까?
  • Apollo codegen globalTypes.ts 경로 변경하는 법 (Relative imports outside of src/ are not supported 에러)
개발자 이우진
이우진 기술 블로그
  • All (86)
    • Spring Framework (20)
    • MSA (7)
      • Event Driven Architecture (3)
    • Java (3)
    • Flink (2)
    • Computer Science (9)
      • Object Oriented Programming (3)
    • Problem Solving (15)
    • Design Pattern (0)
    • React (4)
    • Javascript (2)
    • Web (3)
    • Tools & Environment (3)
    • C++ (2)
    • misc (5)
    • Essay (3)
      • 기술 회고 (5)
  • 홈
  • 태그
  • 관리자
  • 글쓰기
hELLO · Designed By 정상우.v4.2.2
React svg 파일 import 하는 방법 - Failed to execute 'createElement' 에러 해결법
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.