- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Reflux.connect
方法来改变组件状态,但我无法在 shouldComponentUpdate
中获取 nextState
和 this.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 中,因为它允许您快速确定状态是否已更改。尝试养成在更改状态时始终返回新副本的习惯,并且永远不要更改状态内的任何内容,除非您先克隆它。
关于refluxjs - shouldComponentUpdate 不会收到最新的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32122567/
我现在正在尝试学习 refluxjs,但正在查看一个名为react-news 的 github 项目。 具体来说,该项目的这一行让我有点困惑: https://github.com/echenley/
我使用 Reflux.connect 方法来改变组件状态,但我无法在 shouldComponentUpdate 中获取 nextState 和 this.state。实际上,当 shouldComp
嗯..我创建了一个上传组件,当用户上传图片时,该组件使用 FileReader API 显示图像预览。 但是,如果我在另一个组件中使用了 3 个组件,当我上传一张图片时,该图片也会在 3 个组件中重复
在我的项目中,我决定包含 React Router。我的一家回流商店需要根据一些 BL 找出路径,然后更改它。首先,我尝试在商店中包含 Navigation mixin 并运行 this.transi
作为一个整体,我对 Flux 还是个新手,但我正试图通过从 Reflux 入手来掌握它,Reflux 似乎更固执己见,也更容易学习。 据我所知,Reflux 商店有一个 trigger指示商店数据已更
我是一名优秀的程序员,十分优秀!