为什么我的setState不起作用?

时间:2015-06-21 20:02:12

标签: javascript reactjs

我创建了一个react组件。在这个组件中,我调用一个通常更新状态的函数:

updateCheckbox: function(name, value) {
    this.setState({name: value});
},

我已经检查了此函数的value,我发现调用并设置了正确的value。然后调用render函数,因为刚刚设置了状态。当我进入render函数时,state尚未更新。

我意识到这是因为我已经更新了state。如果我将state的实际名称放在setState函数中,那么所有内容都会按原样更新。

有人知道解决方法吗?

1 个答案:

答案 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);
},