сортировать с текущим или предыдущим состоянием - PullRequest
0 голосов
/ 18 мая 2018

Есть ли причина использовать prevState следующим образом:

sort=()=>{
 this.setState(prevState =>({contacts: [...prevState.contacts].sort(compareNames)}))
}

или можно просто использовать:

sort=()=>{
  this.setState({contacts: [...this.state.contacts].sort(compareNames)})
}

1 Ответ

0 голосов
/ 18 мая 2018

Из документации реагирования для Состояние и жизненный цикл

React может объединять несколько вызовов setState() в одно обновление для производительности.

Потому что this.props и this.state могут обновляться асинхронно, вы не должны полагаться на их значения для вычисления следующего состояния.

// Wrong
this.setState({
  counter: this.state.counter + this.props.increment,
});

// Correct
this.setState((prevState, props) => ({
  counter: prevState.counter + props.increment
}));
...