ReactJS -检测状态变化的问题
ReactJS — problems with detecting changes in state
查看此示例:http://codepen.io/lzhelenin/pen/jVbeRg
有一个小的React应用程序,它的初始状态是这样的:
{
foo: 123,
bar: [{
cux: 456
}]
}
如果你按下按钮,它会添加一个处于状态的新对象。条并改变状态。foo的价值。然而,如果你按下它,然后看一下控制台,你会看到那个状态。前一状态的Bar和状态完全相同。新州的酒吧,尽管州。Foo是不同的。为什么会这样呢?
正如@Radio-提到的,_.clone
创建了一个浅拷贝的克隆,所以prev
和curr
状态都指向同一个数组,所以你最好把你的clickHandler()
方法调整成这样:
clickHandler() {
this.setState({
foo: 999,
bar: [
...this.state.bar,
{cux: 123}
]
});
}
From http://underscorejs.org/#clone:
clone_.clone(object)创建提供的对象的浅拷贝克隆普通的对象。任何嵌套的对象或数组都将被复制引用,不重复。
因此,prevState.bar
和this.state.bar
都是对同一个数组的引用。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- 单击页面上的链接后高度发生变化
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 在我的网站上创建一个在1-10之间不断变化的数字时遇到了问题.Javascript
- 颜色变化基于所列问题的编号
- ReactJS -检测状态变化的问题
- 动画实时变化的流星问题
- Javascript attr变化与淡出问题
- 问题,而使用过渡+不透明度变化+溢出隐藏
- Webkit重绘问题:转换比例+位置变化
- Jquery循环插件,更新滑块在内容的变化,问题
- IE文本区行高问题对字体大小的变化