React 16.在执行图形渲染之前调用setState回调中的alert事件

时间:2018-05-28 14:57:03

标签: reactjs asynchronous callback alert setstate

我使用反应js 16.

var time = this.state.time;
this.setState({time: time + 1}, function(){alert("hello, time is updated");} );

但在图形更新时间之前会弹出警报。

任何想法如何触发警报但仅在setState完成时? (我希望在弹出警报之前更新视图...)

1 个答案:

答案 0 :(得分:0)

当根据现有状态更新状态时,应始终使用回调函数,因为如果在呈现之前有任何其他状态更新,则React会等待。所以你的代码应该是这样的:

this.setState(
   (prevState) => ({time: prevState.time + 1}),
   () => {alert("hello, time is updated");}
);

换句话说,只要您的新状态取决于之前的状态,就应该使用状态回调方法