리렌더링 문제에 대해 질문이 있습니다.
254
작성한 질문수 4
import React, { useEffect, useState } from 'react'
import { FaCode } from "react-icons/fa";
import { API_URL, API_KEY, IMAGE_BASE_URL } from '../../Config'
import MainImage from './Sections/MainImage'
import GridCards from '../commons/GridCards'
import { Row } from 'antd'
function LandingPage() {
const [Movies, setMovies] = useState([])
const [MainMovieImage, setMainMovieImage] = useState(null)
const [CurrentPage, setCurrentPage] = useState(0)
useEffect(() => {
const endpoint = `${API_URL}movie/popular?api_key=${API_KEY}&language=en_US&page=1`
fetchMovies(endpoint)
}, [])
const fetchMovies = (endpoint) => {
fetch(endpoint)
.then(response => response.json())
.then(response => {
console.log(response)
setMovies([...Movies, ...response.results])
setMainMovieImage(MainMovieImage || response.results[0])
setCurrentPage(response.page)
})
}
const loadMoreItems = () => {
const endpoint = `${API_URL}movie/popular?api_key=${API_KEY}&language=en_US&page=${CurrentPage + 1}`
fetchMovies(endpoint)
}
return (
<div style={{ width: '100%', margin:'0'}}>
{/* Main Image */}
{MainMovieImage &&
<MainImage
image={`${IMAGE_BASE_URL}w1280/${MainMovieImage.backdrop_path}`}
title={MainMovieImage.original_title}
text={MainMovieImage.overview}
/>
}
<div style={{width: '85%', margin: '1rem auto'}}>
<h2>Movies by latest</h2>
<hr />
{/* Movie Grid Cards */}
<Row gutter={[16, 16]} >
{Movies && Movies.map((movie, index) => (
<React.Fragment key={index}>
<GridCards
LandingPage
image={movie.poster_path ?
`${IMAGE_BASE_URL}w500${movie.poster_path}` : null
}
movieId={movie.id}
movieName={movie.original_title}
/>
</React.Fragment>
))}
</Row>
</div>
<div style={{ display:'flex', justifyContent: 'center'}}>
<button onClick={loadMoreItems}>Load More</button>
</div>
</div>
)
}
export default LandingPage
밑의 질문도 보고
setMainMovieImage(MainMovieImage || response.results[0]) 으로 바꾸고 나서 load more 버튼을 클릭하면 메인 이미지는 변경되지 않는 것을 확인했습니다.
그런데 여전히 그리드 쪽은 리렌더링되면서 해주신 것처럼 버튼을 누른 자리에서 스크롤이 있고 카드들이 더 생기는 것이 아니라 새로고침처럼 load more 버튼이 있는 제일 밑으로 이동합니다.
이 문제를 수정하려면 어떻게 할 수 있을까요? 아니면 문제를 수정하기 위해 어떤 게 필요할까요?
답변 0
에러서 요렇게만 해보세요
0
228
1
antd Menu 질문
0
258
1
movieTitle
0
218
1
npm run dev 연결이 안됩니다ㅜㅜ
0
410
1
npm run dev 오류
0
855
1
403 forbidden error
0
1067
2
npm run dev 오류
0
696
1
모듈이 없다는데요
0
1277
1
npm run dev 실행시 오류
0
5367
1
504 Gateway Timeout Error
0
1448
1
컴파일 에러 관련 문의
0
504
1
npm run dev 오류
0
760
1
이미지가 안떠요...
0
369
2
npm run dev 실행하고 인증이 안되는거 같아요
0
531
1
cd client에서 npm install 오류
0
1418
1
npm run dev시 localhost가 자꾸 3000으로 연결됩니다
0
972
1
Netlify + AWS Elastic Beanstalk 를 이용한 배포
1
1785
1
[nodemon] app crashed - waiting for file changes before starting... Error occurred while proxying request localhost:3000/api/hello to http://localhost:5000/ 해결법
0
460
0
지금 듣기엔 안되는 강의일까요?
0
717
1
사진이 2개 2개씩 다른줄에 나와요 ㅠㅠ
0
428
1
비동기 처리가 영상과 다르게 됩니다..
0
247
0
#2강 npm install
0
768
4
LandingPage.js 내 useState(null) 이용하는 이유
0
226
0
client 부분에 App.js 와 Config.js 위치가 다른데 상관없는 것인가요?
0
383
1





