javascript - 在 React 中使用 es6 动态设置状态并获取状态

标签 javascript reactjs ecmascript-6

最近我了解到可以使用动态状态处理多个输入事件。

如果有这样的状态

this.state = {
   name_1: 'john',
   name_2: 'james'
}

我可以这样得到我的状态

[1,2].forEach(obj, i), => (
  console.log(this.state[`person_${i}`]);
))

但是 setState 呢?语法是什么样的?我用过这个,效果很好。

//表示 i 是动态的

this.setState({
  [`person_${i}`]: ''
})

为什么上面的代码有效?它看起来像数组。

最佳答案

这是 ES6 中的一项新功能,名为 CompulatedPropertyName。您可以使用动态属性名称初始化对象。

您可以阅读有关此的更多信息 here .

在React生态系统中,它通常用于处理输入更改:

handleChange(field, value) {
    this.setState({ [field]: value });
}

<input
  onChange={e => this.handleChange('firstName', e.target.value)}
/>

关于javascript - 在 React 中使用 es6 动态设置状态并获取状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43695363/

相关文章:

javascript - 将值从 html 传递到 javascript

javascript - 在没有反应插件的情况下使用 eslint-config-airbnb

javascript - 如何使用 ReactJS 更新内容

javascript - 如何根据 Context API 中的值呈现不同的组件?

javascript - ES6 参数的默认值

javascript - 使用 ES6/2015 导出对象文字的最佳方法是什么?

javascript - 使用 NPM glob,如何更改脚本实际所在的目录?

html - 删除不需要的水平滚动(水平滚动来自哪里?)

reactjs - Redux 的 useSelector Hook 方法是否返回对数据模型的引用而不是新对象?

javascript - Babel 对我的 Javascript 没有影响