使用reactJS中的变量将值设置为嵌套状态

使用reactJS中的变量将值设置为嵌套状态,reactjs,state,Reactjs,State,我定义了一个变量,它将值粘贴为userInfo中的键 this.state = { userInfo: { firstName: "", lastName: "", email: "" } } //_________________________________________ onChange = (e)=>{ var stateChild = e.target.name // stateChild her

我定义了一个变量,它将值粘贴为userInfo中的键

this.state = {
      userInfo: {
        firstName: "",
        lastName: "",
        email: ""
      }
}
//_________________________________________
onChange = (e)=>{
    var stateChild = e.target.name // stateChild here is variable which will return (firstname, lastName or email) of userInfo
    var userInfo = {
     // ...this.state.userInfo
    }
    userInfo.stateChild = e.target.value; //  I want to paste state child's value here
    console.log(userInfo.stateChild);
}

我没有在您的处理程序中设置任何
setState
。您是否尝试过:

this.state = {
  userInfo: {
    firstName: "",
    lastName: "",
    email: ""
  }
};

onChange = e => {
  this.setState(prevState => ({
    userInfo: {
      ...prevState.userInfo,
      [e.target.name]: e.target.value
    }
  }));
};

使用这个函数,它在userInfo中创建了新的密钥。我希望修改与e.target.name匹配的键的值新创建的键是什么?我的意思是,如果e.target.name=firstName,它不会将值传递给firstName。似乎创建了新的名字。不,它不能是对象中的两个相同的键:)