Javascript 反应还原剂不改变
我遇到了一个疯狂的问题,我认为纯JS比redux更重要 我的初始状态如下所示:Javascript 反应还原剂不改变,javascript,arrays,reactjs,redux,Javascript,Arrays,Reactjs,Redux,我遇到了一个疯狂的问题,我认为纯JS比redux更重要 我的初始状态如下所示: let data = { outputs : ["0", "0", "0", "0"], analogIn : "0" } 这是我的reducer的一部分,所以当我尝试更改输出数组的值(例如第三个值)时 你知道为什么会这样吗? 这与redux有关吗?好的,找到了解决方案 似乎是这样: newstate.outputs = outputs 或者这个: newstate.outputs[num] =
let data = {
outputs : ["0", "0", "0", "0"],
analogIn : "0"
}
这是我的reducer的一部分,所以当我尝试更改输出数组的值(例如第三个值)时
你知道为什么会这样吗?
这与redux有关吗?好的,找到了解决方案 似乎是这样:
newstate.outputs = outputs
或者这个:
newstate.outputs[num] = "1"
如果要将一个数组的内容复制到作为数组的对象的值,则不起作用
解决方案是克隆阵列
newstate.outputs = outputs.slice(0)
我不确定这是因为es6还是纯JS造成的。好的,找到了解决方案 似乎是这样:
newstate.outputs = outputs
或者这个:
newstate.outputs[num] = "1"
如果要将一个数组的内容复制到作为数组的对象的值,则不起作用
解决方案是克隆阵列
newstate.outputs = outputs.slice(0)
我不确定这是因为es6还是纯JS造成的。问题出在更广泛的应用程序中,上面的减速机作为纯功能工作正常。问题是在更广泛的应用中,上面的减速机作为一个纯函数工作得很好。