最近项目中在使用antd的分页组件时发生了第一次点击分页无变化,再次点击时数据为上一次的分页结果,代码以下:react
setPageIndex = (pagination)=> { const pager = { ...this.state.pagination }; pager.current = pagination.current; this.setState({ pagination: pager, // 设置当前页 }); this.getList(); // 获取数据列表 }
在确认代码无误以后查阅react相关资料发现 :antd
经过this.setState({}) 进行赋值时不能保证是同步进行的。async
因而经过修改代码使用asnyc + await 规避掉此问题:this
setPageIndex = async (pagination)=> { const pager = { ...this.state.pagination }; pager.current = pagination.current; await this.setState({ pagination: pager, // 设置当前页 }); this.getList(); // 获取数据列表 }