javascript - Angular ngrx : TypeError: Cannot free

我遇到了 ngrx 问题。我在我的状态下有一个数组,我想在其中附加对象。这实际上工作正常,如果我 console.log 他们我可以在我的商店中看到这些值。但是 redux 开发工具和控制台抛出错误“TypeError: Cannot freeze array buffer views with elements”。

我有一个看起来像这样的状态:

const state: State = {
  array: []
};

我传递给我的操作的对象看起来与此类似:

const obj = {attr: number, data: ImageData};

其中 ImageData 来自 Canvas 并使用 canvas.getContext("2d").getImageData(...); 提取;。应该注意的是,这个对象很大,有超过 69000 个键,值从 0 到 255(RGBA)。

然后我像这样将新对象附加到状态/存储:

createReducer(
  initialState,
  on(action, (state: State, action)=> {
    return {
      ...state,
      array: [...state.array, action.payload]
    }
  })
);

此外,我读到我应该在将对象传递给操作之前对对象进行 deepCopy,所以我使用 lodashs copyDeep() 做到了这一点,但我得到了相同的结果。

感谢任何帮助。

最佳答案

你的 reducer 中需要 state.array。

return {
  ...state,
  array: [...state.array, action.payload]
}

关于javascript - Angular ngrx : TypeError: Cannot freeze array buffer views with elements,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62586297/

相关文章:

string - 将字符串拆分为最少数量的字符串,其中每个字母重复奇数次

python - 如何使用 slider 同时更新更多的线图?

java - 将内部 HashMap 类型强制转换为 Map

python - DBSCAN 聚类甚至无法处理 40k 数据,但可以使用 python 和 skl

java - Open Api Generator 插件不适用于 Maven

vue.js - 当对象没有(可识别的)变化时触发 Vue 监视

java - SonarQube Scanner - 插件下载之间的长时间停顿

r - 在 Windows 上安装 odbc R 包时出现问题

html - 如何在选择下拉菜单上设置 Font Awesome 图标?

postgresql - postgres SQL 状态 : 22P02