javascript – React.js setState()与内部循环键的变量?

前端之家收集整理的这篇文章主要介绍了javascript – React.js setState()与内部循环键的变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法使用字符串变量的值作为setState()的键?
getInitialState: function () {
    return {
        foo: '',bar: ''
    }
}

someOtherHandler: function() {
    var arr = ['foo','bar'];
    var _this = this;
    var number = Math.random();

    for (var i in arr) {
        _this.setState({ arr[i]: number });
    }

}

React抛出了上面的语法错误,将arr [i]设置为变量最终设置一个具有该变量名称的新状态.

解决方法

您可以在调用setState之前创建对象.
var newState = {};
newState[i] = number;
_this.setState(newState);

或者,如果您使用的是ES6,则可以使用computed property.

_this.setState({ [i]: number });

但是这段代码会多次调用setState,只调用一次它会更有效.构建更新的状态对象,然后应用它.

var newState = {};

for(var i in arr) {
  newState[i] = number;
}

this.setState(newState);

猜你在找的JavaScript相关文章