首页 > 解决方案 > 反应更改侦听器未触发

问题描述

我知道这个问题已经被问过好几次了,到目前为止我已经尝试了不同的解决方案,但似乎都没有奏效。我是 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(); 

}

标签: javascriptreactjsmaterial-ui

解决方案


感谢您的热烈响应,事实证明,将 mytable与 my 一起呈现的功能paginationstatic

static renderResults(results){

  <div>
   <table>
    ....
  </table>
 <Pagination
  count={response.payLoad.totalPages}
  defaultPage={1}
  page={page}
  variant="outlined"
  shape="rounded"
  onChange={this.handleOnPageChange}/>
}

不确定这是否同样适用,Javascript但在Java您无法访问thisfrom a 的Static情况下,我觉得这就是没有发生任何事情的原因,当我删除它时,一切正常。


推荐阅读