我试图在用户关闭窗口的选项卡时调用一个函数。根据我的研究,我发现使用 window的beforeunlaod事件实现这一目标的以下方法:
componentDidMount(){
window.addEventListener('beforeunload', (ev) => {
this.props.apiCall(); // calling an api to update some data
})
}
似乎上述代码无法正常工作,因为未调用相应的函数(apiCall())。
有人可以帮我解决这个问题吗?
答案 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();
});