简体   繁体   English

Javacsript-使用2个变量键访问嵌套对象的值(对于ReactJS setState())

[英]Javacsript - access nested object value using 2 variable keys (for ReactJS setState())

This seems to me to be a very simple issue but I can't seem to solve it. 在我看来,这是一个非常简单的问题,但我似乎无法解决。

I am trying to setState on a ReactJS component while accessing the nest state object using 2 string keys but I cannot seem to get this to work. 我正在尝试使用2个字符串键访问嵌套状态对象时在ReactJS组件上设置setState,但似乎无法正常工作。

State: - 州:-

state = {
    first_name: {
      value: '',
    },
}

These attempts fail: - 这些尝试失败:-

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

e.target.name evaluates to 'first_name' so that is not the issue... I have also tried: - e.target.name的值为'first_name',所以这不是问题...我也尝试过:-

this.setState({ [['first_name']['value']]: e.target.value})
this.setState({ ['first_name'['value']]: e.target.value})

All that happens is I get a new entry in the state object of "undefined". 发生的所有事情都是在状态对象“未定义”中获得一个新条目。 Can anyone give advice here? 有人可以在这里提供建议吗? Thanks. 谢谢。

Edited: 编辑:

Appears to be a duplicate of: - 似乎与以下内容重复:-

How do I setState for nested array? 如何为嵌套数组设置状态?

Solution found (using the spread operator)... 找到解决方案(使用价差运算符)...

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

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

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