使用 React Immutability Helpers 处理多重突变的正确方法
Proper Way to handle Multiple Mutations with React Immutability Helpers
为了提高效率,我正在尝试使用 React 的不可变性助手来改变状态,一切似乎都很好。我的问题是我想一次性在某些数组上同时执行 $splice
和 $merge
,但我不确定怎么做。
看来:
var newState = React.addons.update(this.state,
cards: {$splice: [[0, 1]]},
cards: {$push: this.pickNextCards(1)}
});
setState(newState);
行不通,我已经尝试了一些变体,但似乎也行不通(第二个命令总是覆盖第一个)。我假设 (?) 这必须分两步完成。
为 speed/readability 执行此操作的 'best practice' 方法是什么?我应该在第二次操作中直接更改 newState
吗?这会导致性能不佳吗?
尝试:
var newState = React.addons.update(this.state,
cards: {
$splice: [[0, 1]],
$push: this.pickNextCards(1)
}
});
我制作了一个 fiddle 示例。检查一下!
为了提高效率,我正在尝试使用 React 的不可变性助手来改变状态,一切似乎都很好。我的问题是我想一次性在某些数组上同时执行 $splice
和 $merge
,但我不确定怎么做。
看来:
var newState = React.addons.update(this.state,
cards: {$splice: [[0, 1]]},
cards: {$push: this.pickNextCards(1)}
});
setState(newState);
行不通,我已经尝试了一些变体,但似乎也行不通(第二个命令总是覆盖第一个)。我假设 (?) 这必须分两步完成。
为 speed/readability 执行此操作的 'best practice' 方法是什么?我应该在第二次操作中直接更改 newState
吗?这会导致性能不佳吗?
尝试:
var newState = React.addons.update(this.state,
cards: {
$splice: [[0, 1]],
$push: this.pickNextCards(1)
}
});
我制作了一个 fiddle 示例。检查一下!