是否使用动态键名对JS setState()进行反应?

编辑:这是一个副本,请参见此处

我找不到在设置状态时使用动态键名的任何示例。这就是我想做的:

inputChangeHandler:函数(事件){
this.setState({event.target.id:event.target.value});
},

其中event.target.id用作要更新的状态键。这在React中是不可能的吗

多亏@Cory的提示,我用了这个:

inputChangeHandler:函数(事件){
var stateObject=函数(){
returnObj={};
returnObj[this.target.id]=this.target.value;
返回OBJ;
}.bind(事件)();
this.setState(stateObject);
},

如果使用ES6或Babel transpiler转换JSX代码,您也可以通过计算属性名来实现这一点:

inputChangeHandler:函数(事件){
this.setState({[event.target.id]:event.target.value});
//或者对字符串使用模板字符串
//this.setState({[`key${event.target.id}`]:event.target.value});
}

发表评论