如何在Redux中替换数组数据?

问题描述

我需要用另一个数组中的新数据替换数组中的某些数据。我执行了一个循环,其中我从某些值中将单词删除为小写。现在,我想更新数据,但是由于某些原因它不会更新。

const initialState = {
    list: []
};


case Constants.dataNodes.success: {
            const newState = { ...state };

            newState.list = [...newState.list,...action.payload];


            const filterFQDN = [];

            for (let i = 0; i < newState.list.length; i++) {
                filterFQDN.push(newState.list[i].fqdn.toLowerCase());
            }

            for (let a = 0; a < newState.list.length; a++) {
                for (let b = 0; b < filterFQDN.length; b++) {
                    if (filterFQDN[b] === newState.list[a]) {
                        return newState.list = [...newState.list[a].fqdn,...filterFQDN[b]];
                    }
                }
            }
          
        }

解决方法

您可以浅表复制现有状态,然后浅表复制现有state.list到新数组中,并将有效负载附加到末尾。将此新数组映射到另一个document.getElementById("top").scrollIntoView();属性toLowerCase()

fqdn

由于您从一个空数组开始,您只需要case Constants.dataNodes.success: { const newState = { ...state,list: [...state.list,...action.payload].map((el) => ({ ...el,fqdn: el.fqdn.toLowerCase() })) }; } 传入的新数据,因此您可以映射有效负载而不是每次映射整个状态数组。

toLowerCase

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...