如何解决如何在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。