有没有办法使用字符串变量的值作为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,则可以使用计算属性.
_this.setState({ [i]: number });
但是这段代码会setState
多次调用,只调用一次会更有效.构建更新的状态对象,然后应用它.
var newState = {}; for(var i in arr) { newState[i] = number; } this.setState(newState);