最近項目中在使用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(); // 獲取數據列表 }