在窗口/选项卡关闭之前反应调用功能

时间:2019-06-28 07:12:05

标签: javascript reactjs window onbeforeunload

我试图在用户关闭窗口的选项卡时调用一个函数。根据我的研究,我发现使用 window的beforeunlaod事件实现这一目标的以下方法:

componentDidMount(){
  window.addEventListener('beforeunload', (ev) => {
    this.props.apiCall(); // calling an api to update some data
 })
}

似乎上述代码无法正常工作,因为未调用相应的函数(apiCall())。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据docs,您的EventListener应该像这样

window.addEventListener('beforeunload', (event) => {
  // Cancel the event as stated by the standard.
  event.preventDefault();
  // Chrome requires returnValue to be set.
  event.returnValue = '';

  this.props.apiCall();
});