我正在尝试创建一个功能,如果用户点击一个LOAD MORE按钮,它会返回更多数据。
我已经完成了一些代码,但每次我点击LOAD MORE按钮时,它都会删除前 12 个项目并设置新的 12 个项目,但我不想那样,我想保留 12 个旧项目,这只是一个常规加载更多功能。
const Comp = ({ data }) => {
const postsPerPage = 12
const [postsToShow, setPostsToShow] = useState([])
const [next, setNext] = useState(postsPerPage)
let arrayForHoldingPosts = []
const loopWithSlice = (start, end) => {
const slicedPosts = data.products.slice(start, end)
arrayForHoldingPosts = [...arrayForHoldingPosts, ...slicedPosts]
setPostsToShow(arrayForHoldingPosts)
}
useEffect(() => {
loopWithSlice(0, postsPerPage)
}, [])
const handleShowMorePosts = () => {
loopWithSlice(next, next + postsPerPage)
setNext(next + postsPerPage)
}
return (
<div>
{postsToShow.map(p => <div>...</div>)}
<button onClick={handleShowMorePosts}>Load more</button>
</div>
)
}
除此之外,我需要将它变成一个钩子,我将在整个应用程序中使用它。
我错过了什么?
有任何想法吗?
潇潇雨雨
四季花海
相关分类