コードキャンプ開始キャンプ14日目
3659 ワード
ページング
ページを処理する方法は、一般的な方法と無限のスクロール方法の2つがあります.では、今日は通常のページ処理を見てみましょう.
一般的には、ページ番号をクリックして移動するページ処理方法です.
まずstateを生成して開始ページ値を通知します.
const [startPage, setStartPage] = useState(1);
ページ番号をクリックすると、対応するページ値として画面が再表示される関数を作成します.
const onClickPage = (event) =>
{ if (event.target instaceof Element)
refetch({page: Number(event.target.id)});
};
ページごとに10個表示されると、前のリストと次のリストに移動できる関数が作成されます.
const onClickPrevPage = () =>{
if (startPage === 1) return;
setStartPage((prev) => prev -10);
};
const onClickNextPage = () =>{
if (startPage + 10 > lastPage) return;
setStartPage((prev) => prev +10);
};
ここで、「lastPage」は、合計何件の投稿があるかを教えてくれ、10点とレポート処理を行います.10を分割する理由は、1ページに10の投稿が表示されるためです.
次です.map()を使用して、データを送信するリスト画面を作成します.
<div>
{data?.해당데이터.map((el) => {
<div key = {el.id}> {el.뿌려주고자하는 데이터} </div>
})}
</div>
次に、ページの移動に番号と矢印を持つナビゲーションを作成します. <span onClick={onClickPrevPage}> {`<`} </span>
{new Array(10).fill(1).map((_, index) =>
startPage + index <= lastPage && (
<span key={startPage + index}
onClick={onClickPage}
id={String(startPage+index)}
>
{startPage + index}
</span>
))}
<span onClick={onClickNextPage}>{`>`}</span>
Reference
この問題について(コードキャンプ開始キャンプ14日目), 我々は、より多くの情報をここで見つけました https://velog.io/@junejae_1625/코드캠프-부트캠프-14일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol