如何在 immer 的草稿中更新数组的数组或对象数组而不导致页面崩溃

问题描述 投票:0回答:2

我有一个数组,它在不同的操作上不断变化,我需要在 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 或更大,则更新数组的重新分配会减慢/崩溃。

我做错了什么吗?或者如果我的整个数组在每次操作中都发生变化,如何更新草稿?

reactjs redux-saga immer.js
2个回答
0
投票

==,你好,兄弟 也许就像下面这样

    switch(action){
       case 1:func1();//break;
       case 2:func2();//break;
    
    }

所以,超过50后就解决了,,hhhhhh 这是我的猜测..


0
投票

我在 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
        });
© www.soinside.com 2019 - 2024. All rights reserved.