0

I have various state variables. I can change it with a separate function, like this:

handleMusic=(event) =>
{
this.setState({musicList:event.target.value});
}

handleName=(event) =>
{
this.setState({nameList:event.target.value});
}

What I want is a function that has a state variable name as parameter and values and assign the same state variable with the provided values.

Something like this:

updateStateArray=(name,val) =>
{
this.setState({name:val}) //but this will create another state variable
}
halfer
  • 19,471
  • 17
  • 87
  • 173
Pranay kumar
  • 1,665
  • 2
  • 16
  • 35

2 Answers2

1

You can do something like

updateStateArray = (name,val) => {
  this.setState({ [name] : val})
}
Nooruddin Lakhani
  • 6,507
  • 2
  • 16
  • 35
0

this.setState({ name: value }) will simply update the state name in this code.

You want computed property names. this.setState({ [name]: value })

Franrey Saycon
  • 627
  • 1
  • 5
  • 17