Thydaduong
Thydaduong

Reputation: 11

set value to nested state using variable in reactJS

I have defined a variable which will paste value as key inside 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);
}

Upvotes: 1

Views: 36

Answers (1)

Tomasz Mularczyk
Tomasz Mularczyk

Reputation: 36219

I don't any setState in your handler. Have you tried:

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

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

Upvotes: 1

Related Questions