javascript - 反应更改侦听器未触发
问题描述
我知道这个问题已经被问过好几次了,到目前为止我已经尝试了不同的解决方案,但似乎都没有奏效。我是 React 的新手,我正在自学,我有一个表格,Pagination div
底部有一个,分页 div 看起来像这样
<Pagination
count={response.payLoad.totalPages}
defaultPage={1}
page={page}
variant="outlined"
shape="rounded"
onChange={this.handleOnPageChange}
/>
handleOnPageChange
看起来像这样
handleOnPageChange = (event, page) => {
console.log("Page selected: " + page);
this.setState({ currentPage: page });
this.populateTable();
}
该onChange
方法有两个参数,event
, page
,该handleOnPageChange
方法应该捕获事件并打印一条控制台消息,上面写着Page selected
+pageNumber 并table
使用该populateTable()
方法加载新数据,但令我惊讶的是,没有任何反应,甚至没有打印出控制台消息,我哪里出错了?
分页来自material-ui
库
import Pagination from '@material-ui/lab/Pagination';
populateTable()
方法_
populateTable() {
this.fetchUsers(this.state.currentPage);
}
async fetchUsers(page) {
fetch('/api/v1/users/'+page+'/10')
.then(response => response.json() )
.then(data => this.setState({ users: data, loading: false })).catch();
}
解决方案
感谢您的热烈响应,事实证明,将 mytable
与 my 一起呈现的功能pagination
是static
static renderResults(results){
<div>
<table>
....
</table>
<Pagination
count={response.payLoad.totalPages}
defaultPage={1}
page={page}
variant="outlined"
shape="rounded"
onChange={this.handleOnPageChange}/>
}
不确定这是否同样适用,Javascript
但在Java
您无法访问this
from a 的Static
情况下,我觉得这就是没有发生任何事情的原因,当我删除它时,一切正常。
推荐阅读
- servicenow - 是否可以从 ServiceNow 的不同表中自动填充一个字段?
- react-native - Sentry 在 React Native Expo 应用程序中不起作用
- spring-boot - 我试图在请求参数中将 + 符号作为字符串传递,但它在处理时没有出现?
- apk - APK 文件创建
- reactjs - yarn build 失败 this.config.reduce 不是函数
- go - 连接中继器时如何解决余额不足错误?
- winforms - 将 Devexpress 项目从 v17.2 转换为 21.2(在 v21.2 中不再有 DevExpress.ExpressApp.Images.dll )
- spring - Bean 名称“产品”的 BindingResult 和普通目标对象都不能用作请求属性
- javascript - 数据未从前端传递到 REST API
- linux - 提取目录中文件数量最多的用户