gpt4 book ai didi

refluxjs - shouldComponentUpdate 不会收到最新的状态

转载 作者:行者123 更新时间:2023-12-01 11:30:51 24 4
gpt4 key购买 nike

我使用 Reflux.connect 方法来改变组件状态,但我无法在 shouldComponentUpdate 中获取 nextStatethis.state。实际上,当 shouldComponentUpdate 被调用时,this.state 已经有了我期望在 nextState 中的新值。

Reflux 使用shouldComponentUpdate 需要做什么?

  var component = React.createClass({
mixins: [Reflux.connect(store1, 'store1data'),
Reflux.connect(store2, 'store2data')],

shouldComponentUpdate: function(nextProps, nextState) {
//Here this.state.store1data is equal to nextState.store1data
}

最佳答案

确保您没有改变状态,而是返回它的一个新副本。如果您的商店仅更改状态内的字段,则this.state 指针已经指向变异状态。

因此在您的商店 1 中,而不是:

store1Data.someKey = newValue;
this.trigger(store1Data)

尝试做:

store1Data = _.assign({}, store1Data, {someKey: newValue}); // this uses lodash, for example
this.trigger(store1Data)

这样,每次更改时您都会获得 store1Data 的新副本。

不变性是处理状态时的一个重要概念,尤其是在 React/Flux 中,因为它允许您快速确定状态是否已更改。尝试养成在更改状态时始终返回新副本的习惯,并且永远不要更改状态内的任何内容,除非您先克隆它。

Immutablity in React
ImmutableJs

关于refluxjs - shouldComponentUpdate 不会收到最新的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com