[英]React Pagination : How to Load second page data on Click
I am creating pagination for my application, I am beginner to reactJS . 我正在为我的应用程序创建分页,我是reactJS的初学者。 I am using API for fetching page data but data is long long as list , I want to show it ( 10-10 ) . 我正在使用API来获取页面数据,但数据长于列表,我想显示它(10-10)。 I Implemented Logic for it , fortunately it showing 10 entries on first page when I click on 2
Nothing happen . 我为它实现了逻辑,所幸的是,当我单击2
Nothingthing时,它在首页上显示10个条目。 I want to show first 10
entries in first page but when user click on 2
It must show 10-20
entries in second page ( Mean that on second click it should skip first 10 entries and include 10-20 in second page ) . 我想在首页上显示前10
个条目,但是当用户单击2
它必须在第二页上显示10-20
个条目(这意味着在第二次单击时,它应该跳过前10个条目,并在第二页中包含10-20个条目)。 It will maintain same manner when user click on next or 3
. 当用户单击next或3
时,它将保持相同的方式。 It possible because API is built in loopback and loopback give filtering functionality . 可能是因为API内置在环回中,而环回提供了过滤功能。 I used filter in API link for just first 10 entries which are showing in first page . 我在API链接中仅对前10个条目使用了过滤器,这些条目显示在第一页中。 Could someone please help me how to implement this logic . 有人可以帮我如何实现这种逻辑。 Thanks 谢谢
Code 码
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
function is asynchronous. setState
函数是异步的。 That means that you are triggering the second call to api before setting the new id in state. 这意味着您要在将新ID设置为状态之前触发对api的第二次调用。
Try by passing a callback function to the setState
method: 通过将回调函数传递给setState
方法来尝试:
this.setState({
id
}, () => this.getData())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.