我使用反应js 16.
var time = this.state.time;
this.setState({time: time + 1}, function(){alert("hello, time is updated");} );
但在图形更新时间之前会弹出警报。
任何想法如何触发警报但仅在setState完成时? (我希望在弹出警报之前更新视图...)
答案 0 :(得分:0)
当根据现有状态更新状态时,应始终使用回调函数,因为如果在呈现之前有任何其他状态更新,则React会等待。所以你的代码应该是这样的:
this.setState(
(prevState) => ({time: prevState.time + 1}),
() => {alert("hello, time is updated");}
);
换句话说,只要您的新状态取决于之前的状态,就应该使用状态回调方法。