안녕하세요. 질문자님께서 puzzledata에 초기값으로 1개의 아이템만을 할당하셨기 때문에 최초 컴포넌트 렌더링 시에는 puzzledata[0]에만 값이 존재하며, puzzledata[1], puzzledata[2]에는 값이 존재하지 않으므로 Uncaught TypeError: Cannot read properties of undefined (reading 'src')라는 에러가 발생했을 것입니다. 따라서 해당 에러를 방지하기 위해서는 <SwiperSlide><img src={puzzledata[0].img}/></SwiperSlide> <SwiperSlide><img src={puzzledata[1].img}/></SwiperSlide> <SwiperSlide><img src={puzzledata[2].img}/></SwiperSlide> 위 부분을 {puzzledata.map(item => <SwiperSlide key={item.id}><img src={item.img}/><SwipserSlide>)} 와 같이 변경하시면 되겠습니다. 변경한 코드는 아래와 같이 동작합니다. 1. 최초 컴포넌트 렌더링 1-1) puzzledata = [{...}] 1-2) {puzzledata.map(item => <SwiperSlide key={item.id}><img src={item.img}/><SwipserSlide>)}에서 총 1개의 SwiperSlide만 렌더링 2. setPuzzledata 호출 시 컴포넌트 리렌더링 2-1) puzzledata = [{...}, {...}, {...}] 2-2) {puzzledata.map(item => <SwiperSlide key={item.id}><img src={item.img}/><SwipserSlide>)}에서 총 3개의 SwiperSlide가 렌더링 아래 gist 링크는 제가 테스트해 본 코드인데요, 궁금하시면 한 번 참고해보세요! https://gist.github.com/sekhyuni/1e8ab8d656da777310b55bf46a82d58a

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 12월 12일 오후 2:29

댓글 0