Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 反应还原剂不改变_Javascript_Arrays_Reactjs_Redux - Fatal编程技术网

Javascript 反应还原剂不改变

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] =

我遇到了一个疯狂的问题,我认为纯JS比redux更重要

我的初始状态如下所示:

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造成的。

问题出在更广泛的应用程序中,上面的减速机作为纯功能工作正常。问题是在更广泛的应用中,上面的减速机作为一个纯函数工作得很好。