감자튀김 공장🍟

[React] JSON을 사용해 여러 개의 이미지를 화면에 로드하기 본문

Study/React

[React] JSON을 사용해 여러 개의 이미지를 화면에 로드하기

Potato potage 2021. 6. 29. 22:50
반응형

사진이 너무 많아서 하나하나 import 할 수 없어서 JSON 형식으로 이미지를 로드하고 싶었다.

 

따지고보니 경로 잘못써서 계속 사진이 안떴었던 것 같다ㅎㅎ,,

 

 

jsonconfig.json

{
  "compilerOptions": {
      "baseUrl": "src"
  },
  "include": [
      "src"
  ]
}

 

절대 경로를 사용하기 위해서 package.json과 같은 위치에 jsonconfig.json 파일을 추가했다.

 

 

Perk.json

{
  "data" : [
    {
      "name": "Ace in the Hole",
      "url": "images/survivorPerks/IconPerks_aceInTheHole.png"
    }
  ]
}

이미지와 이미지 이름을 JSON 파일로 위와 같이 만들어 놓았다.

 

 

Perk.js

import React from 'react';
import data from './SurvivorPerk.json';

function SurvivorPerk () {
  
  let ImgData = data.data.map((detail, index) => {
    
    return (
      <div key={index}>
        <span>{detail.name}</span>
        <img src={detail.url} />
      </div>
    );
  });
  
  return (
    <>
      {ImgData}
    </>
  );

}

export default SurvivorPerk;

일단 사진이 잘 뜨나 확인하기 위해서 이미지 1개를 넣은 코드이다.

 

 

그리고 사진은 create-react-app으로 프로젝트를 생성한 후 그 안에 있는 public 폴더에 images라는 폴더를 만들어서 저장해놨다.

 

 

 

사진도 너무 많고 사진 + 사진 이름도 띄워야하기 때문에 JSON 파일로 사진들을 다 저장해놓기로 결정했다.

근데 reqiure를 사용하는 방법에서는 계속 모듈을 찾을 수 없다는 에러가 떠서 require를 사용하지 않고, import를 사진 하나하나 하지 않는 방법을 생각했다. DB나 S3에 저장해서 가져와 쓰는 방법도 있었지만 간단하게 만드는 프로젝트라서 일단 로컬에서 사진을 저장해서 가져와 쓸 수 있는 방법으로 선택했다. 

 

반응형
Comments