简体   繁体   English

如何在JSX中的setState中使用变量

[英]How to use Variables in setState in JSX

I would like to use a variable in the setState function in a JSX file for React. 我想在React的JSX文件中使用setState函数中的变量。

How would I restructure this code: 我将如何重构此代码:

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});
}

Into something like this (so I don't repeat myself)? 进入这样的事情(所以我不重复自己)?

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

The above syntax just sets the state of "name" and not the value of the "name" variable. 上面的语法只设置“name”的状态而不是“name”变量的值。

Easy: 简单:

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

If you're using an ES6 transpliler that supports computed property names (like Babel ), you can do: 如果您使用的是支持计算属性名称(如Babel )的ES6转发器,您可以执行以下操作:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM