inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 리액트 A-Z[19버전 반영]

Movie 모달 UI 생성하기

movie 모달 ui 생성하기 팝업 이미지 안나오

362

2021신년다짐

작성한 질문수 3

0

각 이미지를 클릭하면 팝업 이미지가 나오게 하는 부분인데 이미지가 엑박이 떠서 질문 드립니다. 어느부분을 수정하면 될까요 ??
 
row.js
------
import React, { useEffect, useState } from 'react'
import axios from "../api/axios"
import MovieModal from './MovieModal'
import "./Row.css"

const Row = ({ title, fetchURL, id, isLargeRow}) => {

const [movies, setMovies] = useState([])
const [modalOpen, setModalOpen] = useState(false)
const [movieSelected, setMovieSelected] = useState({})

useEffect(()=> {
fetchMovieData()
},[])

const fetchMovieData = async ()=> {
const request = await axios.get(fetchURL)
setMovies(request.data.results)
}

const handleClick = (movie) => {
setModalOpen(true)
setMovieSelected(movie)
}

return (
<section>
<h2>{title}</h2>
<div className="slider">
<div className="slider__arrow-left">
<span className="arrow" onClick={() => {document.getElementById(id).scrollLeft -= window.innerWidth - 80}}>
{"<"}
</span>
</div>
<div id={id} className="row__posters" >
{movies.map((movie) =>(
<img
key={movie.id}
className={`row__poster ${isLargeRow && "row__posterLarge"}`}
src={`https://image.tmdb.org/t/p/original/${isLargeRow ? movie.poster_path : movie.backdrop_path}`}
loading="lazy"
alt={movie.name}
onClick={()=> handleClick(movie)}
/>
))}
</div>
<div className="slider__arrow-right">
<span className="arrow" onClick={() => {document.getElementById(id).scrollLeft += window.innerWidth - 80}}>
{">"}
</span>
</div>
</div>

{
modalOpen && (<MovieModal {...setMovieSelected} setModalOpen={setModalOpen} />)
}
</section>
)
}

export default Row
 
moviemodal.js
------
import React from 'react'
import "./MovieModal.css"

const MovieModal = ({ backdrop_path, title, overview, name, release_date, first_air_date, vote_average, setModalOpen}) => {
return (
<div className="presendation">
<div className="wrapper-modal">
<div className="modal">
<span className="modal-close" onClick={()=> setModalOpen(false)}>X</span>
<img
className='modal__poster-img'
src={`https://image.tmdb.org/t/p/original/${backdrop_path}`}
alt='moviemodal'
/>
<div className="modal__content">
<p className="modal__details">
<span className="modal__user_perc">100% for you</span>
{release_date ? release_date : first_air_date}
</p>
<h2 className="modal__title">{title ? title : name}</h2>
<p className="modal__overvie">평점: {vote_average}</p>
<p className="modal__overview">{overview}</p>
</div>
</div>
</div>
</div>
)
}

export default MovieModal
 

Next.js react tdd redux typescript

답변 1

0

John Ahn

안녕하세요! 

이럴 때는 원인이 되는 부분부터 log를 찍어 보면 됩니다. 

먼저 사진이 안 나오는 부분이 

<img 

className='modal__poster-img' 

src={`https://image.tmdb.org/t/p/original/${backdrop_path}`} 

alt='moviemodal' 

/> 

여기에 backgrop_path가 잘못된 값일 가능성이 많죠! 

그럼 console.log(backdrop_path)를 먼저 해주세요. 

이게 안 나오면 이걸 전달해주고 있는 부모 컴포넌트에서 왜 못 가져오는지를 살펴보시면 됩니다 ^^ 

감사합니다.

강의 소스 코드 압축 풀기 오류

0

92

1

런타임 에러 ㅠㅠ

0

105

1

강의대로 따라갔는데 에러보다 api키로 들어간 넷플릭스? 그런게 렌더링 되지 않습니다 ㅠ

0

114

1

안녕하세요 개발과 상관없는 질문입니다만

0

123

1

리액트 라우터 관련

0

119

1

react-beatiful-dnd에서 문제가 발생합니다.

0

108

1

react19에서는 react-beautiful-dnd가 설치되지 않습니다.

0

833

1

useEffect로 사용을 해도 되나요?

0

210

1

넷플릭스 오리지널 제외하고 슬라이드가 동작을 안합니다.

0

202

1

react 19의 useActionState가 더이상 isPending은 지원하지 않는 듯합니다

0

287

2

리액트 dockderfile 작성 시 COPY 질문

0

156

1

next.js에서부터는 react query 필요없는지

0

328

1

기능

0

204

1

오류가 안보여요

0

206

1

CSS

0

225

1

local storage

0

224

1

list컴포넌트 생성하기

0

230

1

검색어 입력 후 초기화하는 방법 궁금합니다!

0

343

1

Banner.css에 대해서

0

464

1

플러그인이 추천을 안해줍니다

0

334

1

마이너스버튼 테스트

0

285

2

리액트 서버 실행 오류

0

1169

2

오류메세지는 확인했는데 어떻게 고쳐야 할지 모르겠습니다 ㅠ

0

307

1

creactStore질문이요

1

293

2