正在链接状态更新
Chaining state updates
我编写了在多个组件之间分配逻辑的代码。目前,这些通过回调触发单独的状态更新,对应于类似于的控制流
this.state({foo: React.addons.update(this.state.foo, {$push: 'bar'})});
...
this.state({foo: React.addons.update(this.state.foo, {$push: 'qux'})});
不幸的是,第二次推送覆盖了第一次推送,因为React不会立即更新状态变量,而只是在执行回调之后。是否有调试第一个状态更新的更改以保留第一个状态?
我认为您需要确保在更新新状态时引用了以前的状态。我认为React.addons.update代码在这里没有帮助——你用它来不改变处于状态的数组吗?
如果向setState传递函数而不是仅传递对象,则可以访问以前的状态。在下面创建一个jsfiddle,其中有2个div和您当前的代码,我认为其中一个可以满足您的需要。
https://facebook.github.io/react/docs/component-api.html
handleClick2:function(){
this.setState(function(previousState, currentProps) {
return {text2: previousState.text2.concat(['foo'])};
});
this.setState(function(previousState, currentProps) {
return {text2: previousState.text2.concat(['bar'])};
});
},
https://jsfiddle.net/sa4vvtjL/
相关文章:
- 更新Redux状态&然后在同一实例中获取更新状态
- 如果我不应该在组件WillUpdate中调用setState,如何更新状态(使用ReactJS)
- 如何在alt.js中使用源成功请求后更新状态
- 实现已验证用户更新状态的最佳方式,作为对系统中已更改状态的反应.(ASP.NET MVC网站)
- 如何使用Redux更新状态
- 使用 OnChange 事件更新状态具有延迟字符
- 在 redux 化简器中更新状态的正确方法
- 在反应本机中更新状态需要很长时间
- React - 如何在 AJAX 请求后更新状态
- onchange 事件更新状态,延迟为 1 个字符
- 在循环中调用 setState 仅更新状态 1 次
- react js和rails在具有活动记录关系的组件上更新状态
- React componentDidMount未更新状态
- 发送整个对象只是为了更新状态
- Javascript的问题.无法更新状态
- 当视图加载时更新状态
- Twitter REST API,更新状态
- 在React Router中,当页面改变时更新状态
- React-redux, connect函数不使用新数据更新状态
- React:将新插入的子元素返回给父元素以更新状态