我遇到了 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 包时出现问题