按当前或以前的状态排序

时间:2018-05-18 14:54:43

标签: sorting react-native state

是否有理由使用prevState如下:

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

或者可以使用:

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

1 个答案:

答案 0 :(得分:1)

来自State and Lifecycle

的反应文档
  

React可以将多个setState()个调用批处理为一个更新   性能

     

因为this.propsthis.state可以异步更新,所以   不应该依赖它们的值来计算下一个状态。

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

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