在table分页中,当用户选择每页显示的条数发生变化时,可以通过以下方法解决pageNo的问题:
1. 在onShowSizeChange事件中,将pageNo重置为1,这样每次改变每页显示的条数时,都会将当前页重置为第一页。
```javascript
onShowSizeChange = (current, pageSize) => {
this.setState({
pageNo: 1,
pageSize: pageSize,
});
// 其他逻辑
};
```
2. 在表格数据请求时,根据当前页码和每页显示的条数计算出新的起始索引,然后根据新的起始索引和每页显示的条数获取新的数据。
```javascript
getData = () => {
const { pageNo, pageSize } = this.state;
const startIndex = (pageNo - 1) * pageSize;
// 根据startIndex和pageSize获取数据
// 其他逻辑
};
```
3. 更新表格数据时,根据新的数据和总条数重新计算页码并更新state中的pageNo。
```javascript
updateTableData = (data, total) => {
const { pageSize } = this.state;
const totalPages = Math.ceil(total / pageSize);
let { pageNo } = this.state;
if (pageNo > totalPages) {
pageNo = totalPages;
}
this.setState({
data: data,
total: total,
pageNo: pageNo,
});
};
```
这样就可以保证在改变每页显示的条数时,正确地更新当前页码并获取相应的数据。