我只想对此进行澄清
state = {
foodList: [],
currentFoodItem: null,
}
onFoodsReceived = (foodList) => {
console.log(foodList);
this.setState(prevState => ({
foodList: prevState.foodList = foodList
}));
}
在上面的代码中,当您可以使用以下代码时,它使用prevState替换列表值。为什么有些人使用prevstate而另一些人不替换列表值
onFoodsReceived = (foodList) => {
console.log(foodList);
this.setState({
foodList: foodList
}));
}
答案 0 :(得分:0)
当我们想用最后一个状态的参数覆盖当前状态时使用。
来自React docs:
根据React文档,“ React可能将多个setState()
调用批处理到单个更新中以提高性能。由于this.props
和this.state
可能是异步更新的,因此您不应该依赖它们的值用于计算下一个状态。”
“要解决此问题,请使用第二种形式的setState()
接受一个函数而不是一个对象。该函数将以先前的状态作为第一个参数,并在应用更新时将props用作第二个参数”