[React]Hooks를 사용하여 무한 스크롤 구현
샘플은 여기
샘플 API는 이 API를 사용했습니다.
htps // 푼카피. 코m/
import React, { FC, useEffect } from 'react';
// setPageNumber でページを変えると fetch してくる hook。取得してきたものは beers にたまっていく
import useBeers from 'hooks/useBeers';
import lodash from 'lodash';
const InfiniteScroll: FC = () => {
const { beers, setPageNumber } = useBeers();
// 一番下に到達したら setPageNumber でページを更新
const handleScroll = lodash.throttle(() => {
if (
window.innerHeight + document.documentElement.scrollTop !==
document.documentElement.offsetHeight
) {
return;
}
setPageNumber(prev => prev + 1);
}, 200);
useEffect(() => {
window.addEventListener('scroll', handleScroll);
return () => {
window.removeEventListener('scroll', handleScroll);
};
}, []); // eslint-disable-line react-hooks/exhaustive-deps
return (
<>
<ul>
{beers.map((beer: any) => (
<li key={beer.id}>
<img src={beer.imageSrc} />
<div>{beer.title}</div>
</li>
))}
</ul>
</>
);
};
export default InfiniteScroll;
Reference
이 문제에 관하여([React]Hooks를 사용하여 무한 스크롤 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ikepon/items/cfb3fc819b943c8be92f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)