当前位置:  开发笔记 > 编程语言 > 正文

Javascript属性未更新

如何解决《Javascript属性未更新》经验,为你挑选了1个好方法。

我正在使用ReactJS,这让我疯狂.

我正在尝试更新来自州的对象

var state = this.state;

sku = data['sku'];
console.log(sku) //prints sku/06
console.log(state.sku) //prints sku/06
state.sku = sku;
console.log(state.sku) //prints sku/10

我已经检查了,只有一个电话正在进行中.虽然我使用flux来更新商店,但这种归属是在将动作发送给调度员之前进行的.

这有什么问题?



1> 小智..:

您是否尝试使用React的setState功能更新状态?

var sku = data['sku'];
this.setState({sku: sku});

直接从React docs https://facebook.github.io/react/docs/component-api.html复制

永远不要直接改变this.state,因为之后调用setState()可能会替换你所做的突变.把this.state看作是不可变的.

setState()不会立即改变this.state,但会创建挂起状态转换.调用此方法后访问this.state可能会返回现有值.

无法保证对setState的调用进行同步操作,并且可以对调用进行批处理以获得性能提升.除非在shouldComponentUpdate()中实现条件呈现逻辑,否则setState()将始终触发重新呈现.如果正在使用可变对象并且无法在shouldComponentUpdate()中实现逻辑,则仅当新状态与先前状态不同时调用setState()将避免不必要的重新呈现.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有