首页 > 解决方案 > 这段代码如何更新 React 中的状态?

问题描述

我感到困惑的是 setState 参数中的 [event.target.name]: event.target.value。我之前没有在 Javascript 中看到这个方括号表示法,所以我不明白为什么键周围有方括号。

onChange = event => {
    this.setState({ [event.target.name]: event.target.value })
};

不确定我在这里不理解/缺少什么 Javascript 构造。

标签: javascriptreactjs

解决方案


这只是意味着属性名称是动态的,并且event.target.name在这种情况下来自。

我认为下面的例子让你清楚地理解它

const name = 'foo';

const obj1 = {
  name: 'bar'
}

const obj2 = {
  [name]: 'bar'
}

console.log(obj1);
console.log(obj2);

这打印

{ name: 'bar' }
{ foo: 'bar' }

推荐阅读