我想为无限滚动应用React钩子。因此,我最终得到以下代码:
export default function index() {
const [allTracks, setAllTracks] = useState([]);
const [offset, setOffset] = useState("");
const { tracks, error, loading, lastVisible } = useFetchPublicTracks(
myApiEndPoint.TRENDING_TRACKS,
5,
offset
);
//concat tracks when got data successfully
useEffect(() => {
if (!loading && tracks) setAllTracks([...allTracks, ...tracks]);
}, [loading, tracks]);
console.log("tracks", allTracks);
console.log("lastVisible", lastVisible);
console.log("loading", loading);
return (
<div>
<button className="" onClick={() => setOffset(lastVisible)}>
Load More
</button>
<Main></Main>
</div>
);
}
当我单击“加载更多” 按钮时,将设置新的偏移量。之后,再次重新渲染组件,并使用新的偏移量调用Api。
我想问我正确使用了React hook 吗?有什么更好的办法吗?另外,我需要在用例中使用 useCallback / useMemo 吗?