在没有库的情况下更新redux中的嵌套状态

时间:2018-05-13 18:14:35

标签: javascript redux immutability

让我们说,我有以下状态。

import eventlet
from threading import Event
eventlet.monkey_patch()

se=Event()
def square(num):
    print(    "square={}".format(num * num))
    se.set()

sc=Event()
def cube(num):
    print(  "square={}".format(num * num * num))
    sc.set()

t1 = eventlet.spawn_n(square, 10)
t2 = eventlet.spawn_n(cube, 10)
se.wait()
sc.wait()

我想更新以下内容:

  • root 对象中的嵌套值。
  • 在DirectoryMap 对象中添加新对象。

建议使用展平结构,但在这种情况下,由于某些权衡,我无法做到更多。

我想以不同的方式在不改变原始状态的情况下执行上述操作。另外,我不想使用像immutable.js这样的库.Vanilla JS或ES6 / ES7功能可能会更好。

1 个答案:

答案 0 :(得分:0)

如果你正在使用jQuery,那么你可以做这样的事情,

let newState = jQuery.extend(true, {}, state);

另一种方式是

newState = JSON.parse(JSON.stringify(state));