【发布时间】:2023-03-28 01:49:01
【问题描述】:
我是 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 中是否可以通过这种方式实现。
有人可以在这里为我指出正确的方向吗?
非常感谢
【问题讨论】:
-
@YevgenGorbunkov,我接受给我的绝大多数答案,但我对自己有一个规则,在我为自己正确测试之前我不接受答案。我不想意外地接受不会帮助其他可能在未来发现这个问题的人的答案。我绝对不是说你的答案是错误的,只是由于我目前的工作性质,我还没有能够测试或使用它。
标签: javascript reactjs