[英]Unable to update a react-redux state properly (array)
我有以下 state 更新 function 用于 redux 阵列
if (replace) {
return {
...state,
mySelectionOtrosFiltros: items
}
} else {
return {
...state,
mySelectionOtrosFiltros: state.mySelectionOtrosFiltros.concat(a[0])
}
}
如果 replace 为 false,则 state 更新工作正常,我可以看到它正在更新。
但是,如果 repac 是真的,我想用一个名为items
的新对象数组完全替换mySelectionOtrosFiltros
这是一个对象数组
但那个案子是行不通的。
我可以看到 state.mySelectionOtrosFiltros 正在更新,但它没有重新渲染,所以我想我搞砸了不变性。 只有当我触发 else 语句时,它才会正确呈现,在这种情况下,会添加新元素并显示以前的更新。
非工作案例的例子
mySelectionOtrosFiltros = [{a: 1 , b: 2, c: 3}]
items = [{a: 2, b: 2, c: 2},{a:4 , b: 4, c: 4}]
myselectionotrosfiltros 应该完全替换为项目,所以它看起来像项目
return {
...state,
mySelectionOtrosFiltros: items
}
它没有被替换
您需要共享完整代码才能真正确定代码的哪些部分违反了不变性。
话虽如此,您仍然可以通过创建如下items
的新副本来快速尝试
if (replace) {
return {
...state,
mySelectionOtrosFiltros: [...items]
}
}
如果确实是由于突变,上面的代码应该可以解决您的问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.