如何在 JSX 的 setState 中使用变量

How to use Variables in setState in JSX

我想在 React 的 JSX 文件中的 setState 函数中使用一个变量。

我将如何重组此代码:

var name = e.target.name;
if(name == "title"){
    this.setState({ title: e.target.value});
}
else if(name == "date"){
    this.setState({ date: e.target.value});
}
else if(name == "amount"){
    this.setState({ amount: e.target.value});
}

喜欢这样的事情(所以我不再重复自己)?

var name = e.target.name;
this.setState({ name: e.target.value});

以上语法只是设置 "name" 的状态,而不是 "name" 变量的值。

var update = {};
update[e.target.name] = e.target.value;
this.setState(update);

如果您使用的是支持计算 属性 名称(如 Babel)的 ES6 转换器,您可以:

this.setState({[e.target.name]: e.target.value});

简单:

var newState = {};
newState[e.target.name] = e.target.value;
this.setState(newState);