У меня есть массив в состоянии, скажем this.state.arr. Я хочу добавить что-то к этому свойству состояния, а затем изменить некоторые свойства.React.js - Каков наилучший способ добавить значение к массиву в состоянии
Вариант 1
onChange(event){
this.state.arr.push('newvalue');
...
this.setState({some:'val',arr:this.state.arr})
}
Вариант 2
onChange(event){
var newArr = this.state.arr;
...
newArr.push('newvalue');
...
this.setState({some:'val',arr:newArr})
}
Так .. Я знаю, что this.state должен рассматриваться неизменны. Но нормально ли использовать его, как в варианте 1, где я все еще устанавливаю состояние из него, или мне нужно идти с чем-то вроде варианта 2, и поэтому всегда сначала делать копию в памяти
увидеть это http://stackoverflow.com/questions/26253351/correct-modification-of-state-arrays-in-reactjs#comment41184522_26253351 и это http://stackoverflow.com/questions/23966438/what -is-the-preferred-way-to-mutate-a-react-state – nilgun
Третий вариант может быть лучшим: используйте помощник по неизменности, предоставленный React: https://facebook.github.io/react/docs/update. html – rebe100x