15日目
10020 ワード
オブジェクト/配列のコピー(...Spread演算子)
あるオブジェクトを別のオブジェクトに割り当てると、既存のオブジェクトの値を変更すると、割り当てられた他のオブジェクトの値も変化します.
他の割り当てられたオブジェクトの値が変更されないようにするにはどうすればいいですか?
const profile = {
name: '철수',
age: 8,
school: '다람쥐 초등학교'
}
const friendProfile = {
name: profile.name,
age: profile.age,
school: profile.school
}
こうすればいいただし,オブジェクトのキーが増加し,キーと値が増加すると,いちいち割り当てることが困難になるため,他の方法を用いなければならない.const friendProfile = {...profile}
spread演算子^0^ただし、浅いコピーではオブジェクトのオブジェクトをコピーできません!オブジェクト内のオブジェクトをインポートする必要がある場合は、
JSON.stringify(object)
が完了した後にJSON.parse(object)
操作^0^無限スクロール
昨日ホームページの命名法を学びました.今日は別の投稿をロードする方法を学びました:無限スクロール.
無限スクロール機能を使用するにはreact無限スクロールを使用します.使い方が簡単です.まずはターミナルで.
yarn add react-infinite-scroller
react無限scrollerを受け入れるそして次のコードを使いたい素子を適用するpresenterが終わりました!
<InfiniteScroll
pageStart={0}
loadMore={loadFunc}
hasMore={true || false}
loader={<div className="loader" key={0}>Loading ...</div>}
>
{items} // <-- This is the content you want to load
</InfiniteScroll>
loadMoreセクションには、ロードするデータを取得する関数が追加されています.これで終わると、簡単ですが、Containerは何かを設定する必要があります.// data, fetchMore 불러오기
const { data, fetchMore } = useQuery(FETCH_BOARDS);
// loadMore 함수
const onLoadMore = () => {
if (!data) return;
fetchMore({
// 다음페이지 불러오기
variables: { page: Math.ceil(data?.fetchBoards.length / 10) + 1 },
// 현재 불러온 데이터에 다음 데이터 추가해주기
updateQuery: (prev, { fetchMoreResult }) => {
if (!fetchMoreResult?.fetchBoards)
return {
fetchBoards: [...prev.fetchBoards],
};
return {
fetchBoards: [...prev.fetchBoards, ...fetchMoreResult.fetchBoards],
};
},
});
};
これを適用すると、スクロール下部がウィンドウスクロールの最低点である場合、他のデータがロードされ、現在のデータの下に貼り付けられます.ウィンドウのスクロールではなく、コンポーネントのスクロールを表示する場合は、次のコードを適用します.
<div style="height:700px;overflow:auto;">
<InfiniteScroll
pageStart={0}
loadMore={loadFunc}
hasMore={true || false}
loader={<div className="loader" key={0}>Loading ...</div>}
useWindow={false}
>
{items}
</InfiniteScroll>
</div>
Reference
この問題について(15日目), 我々は、より多くの情報をここで見つけました https://velog.io/@nej1044/15일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol