Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Reactjs 使用React不变性助手处理多个突变的正确方法_Reactjs_React Native_Immutability - Fatal编程技术网

Reactjs 使用React不变性助手处理多个突变的正确方法

Reactjs 使用React不变性助手处理多个突变的正确方法,reactjs,react-native,immutability,Reactjs,React Native,Immutability,为了提高效率,我尝试使用React的不变性助手来改变状态,一切似乎都很好。我的问题是我想在某些数组上一次性执行$splice和$merge,但我不确定如何执行 看来: var newState = React.addons.update(this.state, cards: {$splice: [[0, 1]]}, cards: {$push: this.pickNextCards(1)} }); setState(newState); 不起作用,我尝试了一些看起来也不起作用的变体(

为了提高效率,我尝试使用React的不变性助手来改变状态,一切似乎都很好。我的问题是我想在某些数组上一次性执行
$splice
$merge
,但我不确定如何执行

看来:

var newState = React.addons.update(this.state, 
  cards: {$splice: [[0, 1]]},
  cards: {$push: this.pickNextCards(1)}
});
setState(newState);
不起作用,我尝试了一些看起来也不起作用的变体(第二个命令总是覆盖第一个命令)。我假设(?)这必须分两步完成

为了提高速度/可读性,“最佳实践”是什么?我是否应该直接用第二个操作更改
newState
?这会导致性能下降吗?

试试:

var newState = React.addons.update(this.state, 
  cards: {
    $splice: [[0, 1]],
    $push: this.pickNextCards(1) 
   }
});
我已经做了一个有用的例子。检查一下