设置反应表页面属性会导致onFetchData始终请求同一页面

时间:2019-01-10 12:10:20

标签: reactjs react-table

假设我们的容器组件接受查询字符串中的过滤器/排序/分页信息。此信息是从componentWillMount中的URL中提取的,并在容器的状态上设置。然后,该状态(比如说page)作为page的属性传递给我们的表对象。我们将onFetchData连接为onFetchData={state => fetchData(state)}。在我们的fetchData函数中,我们提取反应表的传入pagepageSize并切片数据,然后将其设置为状态。接下来,render函数再次触发,提取状态值并将其设置在表格的道具上。

听起来很合理,但是似乎此render> onFetchData循环没有止境地发生,直到浏览器触发“超出最大更新深度”错误为止。

首次加载组件时,我们需要能够设置 initial 页面,但是react-table看起来并不像这样。

更新

事实证明这是我向其发送PR的反应表中的错误:

错误:https://github.com/react-tools/react-table/issues/1230

PR:https://github.com/react-tools/react-table/pull/1231

复制:https://codesandbox.io/s/50knlro2xn

1 个答案:

答案 0 :(得分:0)

每次更新时,看起来好像是错误的结果。这是任何需要它的人的解决方法:

如果要设置初始页状态,可以在componentWillMount期间将初始页号设置为状态。参见:codesandbox.io/s/1o49po0rvl