在 Angular2 (NgRedux) 中使用 Redux 来更新/设置订单条目。可以改变代理变量,然后将其对象分配给状态吗?
在我的数据缩减器中:
case DataActions.UPDATE_ORDER:
var updatedItem
var updatedState = state.orders
for(var i = 0; i < state.orders.length; ++i) {
if(state.orders[i]['key'] === action.payload.key) {
updatedItem = state.orders[i]
updatedItem.name = action.payload.name
updatedItem.items = action.payload.items
}
}
updatedState[i] = updatedItem
return Object.assign({}, state, {
orders: updatedState
})
最佳答案
您的“代理变量”只是对同一对象的另一个引用,所以是的,您直接改变该数组中的项目。
为了正确地进行不可变更新,应该复制每个级别的嵌套。 Redux 文档在 Immutable Update Patterns 中提供了两个常见错误的示例以及如何正确执行此操作。 .
关于javascript - Redux:这算作变异状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40753022/