我有一个数组,它在不同的操作上不断变化,我需要在 immer 的草稿中更新相同的数组,如下所示(将 React 与 Redux 和 Immer 结合使用)。
return produce(state, draft => {
switch (action) {
case SCENERIO1:
.
.
Some Logic To generate updated Array
.
.
draft.someArrayofArrays = modifiedArrayOfArrays;
break;
}
}
}
我的场景是,我在草稿的 someArrayofArrays 中有 100 个项目。我有新的更新数组 modifiedArrayOfArrays,我想将其重新分配给
draft.someArrayofArrays
。因此,如果数组大小约为 100 或更大,则更新数组的重新分配会减慢/崩溃。
我做错了什么吗?或者如果我的整个数组在每次操作中都发生变化,如何更新草稿?
==,你好,兄弟 也许就像下面这样
switch(action){
case 1:func1();//break;
case 2:func2();//break;
}
所以,超过50后就解决了,,hhhhhh 这是我的猜测..
我在 Immer 和多维数组(在 Typescript 中)方面取得了一些成功,执行以下操作:
let clonedState = state.products.map((proxyArray: MyProductType[]) => {
let innerArray = Array.from(proxyArray);
innerArray = innerArray.map((product) => {
let clonedProduct = {...product}
let clonedTags = product.tags.map((tag: string) => tag + '');
clonedProduct.tags = clonedTags;
return clonedProduct;
});
return innerArray
});