当变量变化时,redux状态自动改变

时间:2017-06-01 08:30:36

标签: javascript node.js reactjs redux

我的代码是

const state = getState(); var drag_trips = state.sale.drag_trips; drag_trips[0].deliveries.push(delivery);

当我更改变量drag_trips时,它会自动更改状态而不进行调度。

我想存储和更新状态,最后我将它存储在另一个状态

2 个答案:

答案 0 :(得分:0)

这是因为对象是可变的。当您在阵列上.push时,您正在从getState()更改实际状态,而不是修改副本。

通过执行var drag_trips = state.sale.drag_trips.slice()

获取数组的副本

答案 1 :(得分:0)

你不应该mutate这个州。状态应为immutable,并且应始终通过redux reducers计算。

此时你应该只从国家读取。

在您的情况下,使用redux action作为有效负载调度delivery,并通过将其添加到状态来在reducer中捕获它将是最佳选择。

请参阅todo示例。