首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在添加onTableChange时,Mui-Datatable setState无法工作。

在添加onTableChange时,Mui-Datatable setState无法工作。
EN

Stack Overflow用户
提问于 2022-04-06 05:31:41
回答 1查看 336关注 0票数 0

我使用的是mui,根据这个代码框的官方示例,您可以在setState上使用tableStatehttps://codesandbox.io/s/trusting-jackson-k6t7ot?file=/examples/on-table-init/index.js

代码语言:javascript
复制
handleTableInit = (action, tableState) => {
    console.log("handleTableInit: ", tableState);
    this.setState({ table: tableState });
  };

  handleTableChange = (action, tableState) => {
    console.log("handleTableChange: ", tableState);
    this.setState({ table: tableState });
  };

因此,我想得到tableState.displayData,但是,这会导致一个错误,上面写着:

超过

最大更新深度。当组件在componentWillUpdate或componentDidUpdate中反复调用componentDidUpdate时,就会发生这种情况。React限制嵌套更新的数量,以防止无限循环。

代码语言:javascript
复制
  const handleChange = (action, tableState) => {
    console.log(tableState.displayData);
    setDisplayedData(tableState.displayData);
  };

const options = {
    enableNestedDataAccess: ".",
    print: false,
    filterType: "multiselect",
    selectableRows: "none",
    downloadOptions: { filename: "Data.csv", separator: "," },
    expandableRows: true,
    onTableChange: handleChange,
    onTableInit: handleTableChange,

我想将tableState.displayData的数据存储到setDisplayedData中。如何纠正此错误?

我在codesandbox:https://codesandbox.io/s/mui-datatable-reports-mqrbb3?file=/src/App.js:4130-4415上重新创建了这个错误

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-06 06:01:44

这是持续呈现,因为您已经在setDisplayedData函数中使用了handleChange。因此,每当表更改时,您都会更新状态,并再次更改状态。所以它会有一个无限的循环。

您应该添加条件来检查您所获得的数据是否与prev中的数据不同。您可以尝试使用isEqualwith & isEqual函数来检查新数据是否与旧数据不同。

代码语言:javascript
复制
const handleChange = (action, tableState) => {
    console.log(tableState.displayData);
    if(!isEqualwith(displayedData, tableState.displayData, isEqual)) { 
         setDisplayedData([...tableState.displayData]);}
        };

注意:向您添加了依赖项,并导入了isEqualwith & isEqual函数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71761479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档