React.js setState() 与循环内的键变量?
Posted
技术标签:
【中文标题】React.js setState() 与循环内的键变量?【英文标题】:React.js setState() with variable for key inside loop? 【发布时间】:2016-03-15 15:14:24 【问题描述】:有没有办法使用字符串变量的值作为 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] 设置为变量最终会使用该变量的名称设置新状态。
【问题讨论】:
【参考方案1】:您可以在调用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);
【讨论】:
非常感谢!实际上,我刚刚遇到了一个类似的问题,基本上指向了同一件事:***.com/questions/29280445/…以上是关于React.js setState() 与循环内的键变量?的主要内容,如果未能解决你的问题,请参考以下文章
无法在 socket.io 回调 React.js 中调用 setState
React JS 视图未在 setState() 上重新渲染
在 React JS 的 this.setState 的回调中使用 this.setState?