我创建了一个react
组件。在这个组件中,我调用一个通常更新状态的函数:
updateCheckbox: function(name, value) {
this.setState({name: value});
},
我已经检查了此函数的value
,我发现调用并设置了正确的value
。然后调用render
函数,因为刚刚设置了状态。当我进入render
函数时,state
尚未更新。
我意识到这是因为我已经更新了state
。如果我将state
的实际名称放在setState
函数中,那么所有内容都会按原样更新。
有人知道解决方法吗?
答案 0 :(得分:1)
您需要使用Computed property name(在ECMA 6中添加)来使用name
变量
updateCheckbox: function(name, value) {
this.setState({[name]: value});
},
或bracket notation以获得更广泛的浏览器支持
updateCheckbox: function(name, value) {
var temp={};
temp[name]=value;
this.setState(temp);
},