javascript - React Pagination:如何在点击时加载第二页数据
问题描述
我正在为我的应用程序创建分页,我是 reactJS 的初学者。我正在使用 API 来获取页面数据,但数据很长,我想显示它(10-10)。2
我为它实现了逻辑,幸运的是,当我点击什么都没有发生时,它在第一页上显示了 10 个条目。我想10
在第一页显示第一个条目,但是当用户点击2
它必须10-20
在第二页显示条目(意味着在第二次点击时它应该跳过前 10 个条目并在第二页中包括 10-20)。当用户单击下一步或时,它将保持相同的方式3
. 这是可能的,因为 API 是内置在 loopback 中的,并且 loopback 提供了过滤功能。我在 API 链接中使用了过滤器,仅用于第一页中显示的前 10 个条目。有人可以帮我如何实现这个逻辑。谢谢
代码
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
Item: 5,
skip: 0
}
this.handleClick = this.handleClick.bind(this);
}
urlParams() {
return `http://localhost:3001/meetups?filter[limit]=${(this.state.Item)}&&filter[skip]=${this.state.skip}`
}
handleClick() {
this.setState({skip: this.state.skip + 1})
}
render() {
return (
<div>
<a href={this.urlParams()}>Example link</a>
<pre>{this.urlParams()}</pre>
<button onClick={this.handleClick}>Change link</button>
</div>
)
}
}
ReactDOM.render(<Example/>, document.querySelector('div#my-example' ))
解决方案
setState
函数是异步的。这意味着您在将新 id 设置为 state 之前触发了对 api 的第二次调用。
尝试将回调函数传递给该setState
方法:
this.setState({
id
}, () => this.getData())
推荐阅读
- c++ - 将地址分配给本地指针后,公共对象的变量消失
- javascript - Redux reducer 不显示我的控制台日志并返回 undefined
- php - 如何从 XML 中隐藏特定元素?
- javascript - 错误 [object Object] - 通过 File API 上传 Firebase 存储文件
- excel - 用大写字母更改单词的颜色
- python - 列表到字典:有重复的元素将充当键,但我想针对同一个键收集值并将其转换为列表值
- javascript - 使用本地存储和 Jquery 添加/删除收藏夹多个产品
- git - Git:很难让现有的 Git 存储库跟踪新的裸远程存储库
- stripe-payments - 为什么我收到 Stripe “incorrect_number” 错误?
- c# - unity AddComponent 非常低效和缓慢