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,824
  • 17
  • 99
  • 186
Pranay kumar
  • 1,983
  • 4
  • 22
  • 51

2 Answers2

1

You can do something like

updateStateArray = (name,val) => {
  this.setState({ [name] : val})
}
Nooruddin Lakhani
  • 7,507
  • 2
  • 19
  • 39
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
  • 647
  • 1
  • 5
  • 18