当用户尝试重新加载页面,访问新URL或关闭浏览器窗口/标签时,我试图触发模式。
此刻,代码已成功触发模式,但还会弹出一个默认警报窗口,我想摆脱它:
模式出现在默认警报窗口下方(使用FireFox)
代码:
componentDidMount() {
window.addEventListener('beforeunload', this.onUnload)
}
componentWillUnmount() {
window.removeEventListener('beforeunload', this.onUnload)
}
onUnload(event) {
event.preventDefault();
this.setState({ modalIsOpen: true })
}
答案 0 :(得分:0)
可能会有更推荐的方法来完成此操作,但是覆盖alert
函数应该可以:
onUnload(event) {
event.preventDefault();
const nativeAlert = window.alert
window.alert = console.log // Temporarily override the alert function
this.setState({ modalIsOpen: true })
window.alert = nativeAlert // Restore it to default
}