Javascript 在React中确认警报后onDelete不工作
确认警报在用户将要从React中的页面移动之前显示。如果他们回答是,我想运行Javascript 在React中确认警报后onDelete不工作,javascript,reactjs,Javascript,Reactjs,确认警报在用户将要从React中的页面移动之前显示。如果他们回答是,我想运行onDelete()。如果下面的代码也响应“否”,则会运行onDelete() componentDidMount() { this.setupBeforeUnloadListener(); } setupBeforeUnloadListener() { window.addEventListener("beforeunload", (event) => { event.returnValue =
onDelete()
。如果下面的代码也响应“否”,则会运行onDelete()
componentDidMount() {
this.setupBeforeUnloadListener();
}
setupBeforeUnloadListener() {
window.addEventListener("beforeunload", (event) => {
event.returnValue = `Are you sure you want to leave?`;
this.onDelete();
})
}
只有当用户在确认警报中响应“是”时,我才能运行
onDelete()
。您可以尝试将unload
事件与beforeunload
一起使用beforeunload
将为用户提供取消卸载的机会,如果用户不取消卸载,将触发unload
事件
请注意,大多数浏览器忽略任何自定义提示字符串
当此事件返回(或将returnValue属性设置为)null或undefined以外的值时,将提示用户确认页面卸载。在旧浏览器中,事件的返回值显示在此对话框中。从Firefox 44、Chrome 51、Opera 38和Safari 9.1开始,将显示不受网页控制的通用字符串,而不是返回的字符串。例如:
Firefox显示字符串:“此页面要求您确认
您想离开-您输入的数据可能无法保存。”(请参阅错误)
588292). Chrome显示字符串“你想离开这个网站吗?”?
您所做的更改可能无法保存。“(请参阅Chrome平台状态)
此外,如果您的onDelete()函数执行任何异步操作,则不能保证完成。有关更多信息,请参阅此讨论:谢谢,我找到了!完全解决了!