如何在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