我是 React 的新手,所以如果我弄错了术语,请原谅我。
我想创建一种对组件数组进行分页的方法。为此,我按照每页所需的项目数量对数组进行了切片,并将每一页存储到一个 ne 数组中,例如:
const limit = 4
const numPages = 20
let pagewrapper = []
for (let i = 0; i < numPages; i++) {
let start = i * limit
let end = start + limit
let pageItems = children.slice(start, end)
// Skip first array push as 'page 1' is already showing.
if (end != limit) {
pagewrapper.push(<Grid gridContainerStyles={'grid-page__' + i} items={pageItems} />)
}
}
然后我创建了一个简单的按钮来一次显示每个页面。
<Button
onClick={this.pagerHandleClick}
>
{'Show more'}
</Button>
处理程序看起来像:
pagerHandleClick() {
this.setState(state => ({
page: state.page + 1,
}))
}
但从这里我有点卡住了。我不知道如何告诉每个<Grid />
人揭示它的自我。我谷歌的所有解决方案似乎都表明将组件包装在 if 语句中,但将每个数组项包装在它自己的 if 语句中似乎很奇怪。
过去,我会在 Vanilla JS 或 JQuery 中使用简单的方法完成此操作,getElementByClass.
但我不知道在 React 中是否可以通过这种方式实现。
有人能在这里指出我正确的方向吗?
非常感谢