Reactjs 如何在redux中替换阵列数据?

Reactjs 如何在redux中替换阵列数据?,reactjs,redux,Reactjs,Redux,我需要用另一个数组中的新数据替换数组中的一些数据。我执行了一个循环,从某些值中删除了单词​​小写。现在我想更新数据,但由于某些原因它没有更新 const initialState = { list: [] }; case Constants.dataNodes.success: { const newState = { ...state }; newState.list = [...newState.list, ...action.p

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

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]];
                    }
                }
            }
          
        }
const initialState={
名单:[]
};
case Constants.dataNodes.success:{
const newState={…state};
newState.list=[…newState.list,…action.payload];
常量filterFQDN=[];
for(设i=0;i
您可以浅层复制现有状态,然后将现有状态.list浅层复制到新数组中,并将有效负载附加到末尾。将此新数组映射到另一个数组,在该数组中可以
toLowerCase()
使用
fqdn
属性

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

case Constants.dataNodes.success: {
  const newState = {
    ...state,
    list: [
      ...state.list,
      ...action.payload.map((el) => ({
        ...el,
        fqdn: el.fqdn.toLowerCase()
      }))
    ]
  };
}

我想让我不舒服的是双嵌套for循环中的返回,您似乎错过了一个返回。这是您希望在减速机中返回的预期值吗?或者您正在尝试对数据进行更多的迭代并更新更多的元素?您能更明确地说明您要完成的任务吗?newState.list数组中有一些对象的fqdn值需要小写。在循环中,我首先获取所有值​​并将它们以小写形式存储到新数组中。之后,我想替换这些值​​因此,您只需复制旧数组,添加数据,并将所有元素的“
fqdn
属性”小写即可。最初的目标是将fqdn的元素小写。是的,我想用新的数据替换州谢谢你的回答。在这种情况下,寄存器会更改并正确显示,但在搜索时,只有在顶部输入时才会看到。