gpt4 book ai didi

javascript - Material 表 TypeError : Cannot add property tableData, 对象不可扩展

转载 作者:行者123 更新时间:2023-11-30 18:59:37 24 4
gpt4 key购买 nike

我正在使用 meterial-tableReact。我正在尝试从来自这样的 api 的数组中分配数据

<MaterialTable
columns={columns}
data={rows}
...
/>

其中是api数据。但是我收到了这个错误:

TypeError: Cannot add property tableData, object is not extensible

值得注意的是,当我使用模拟硬编码数据时,一切正常。经过一番搜索,我找不到任何解决方案,有帮助吗?

最佳答案

您很可能正在使用 immer 或在后台使用 immer 的库(例如 @reduxjs/toolkit)。 immer 使用 Object.freeze 使其生成的对象不可变。

material-table 修改自己的 Prop (这是一个非常丑陋的反模式)。当图书馆违反规则时,他们将不会与试图强制执行规则的图书馆合作。

无法解冻已卡住的对象,但您有两种选择:

  1. 找到一种在 immer 实例中禁用卡住的方法(查看 API 文档,了解您认为可能卡住状态的任何内容)。

  2. 覆盖 Object.freeze 使其什么也不做(非常 hacky,应该避免 - 但它可能是你最好的选择):

window.Object.freeze = function(obj) { return obj }
  1. 在将状态传递给 MaterialTable 之前克隆/深度复制您的状态。这也远非理想,尤其是当您有大量数据时。

关于javascript - Material 表 TypeError : Cannot add property tableData, 对象不可扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com