Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React中确认警报后onDelete不工作_Javascript_Reactjs - Fatal编程技术网

Javascript 在React中确认警报后onDelete不工作

Javascript 在React中确认警报后onDelete不工作,javascript,reactjs,Javascript,Reactjs,确认警报在用户将要从React中的页面移动之前显示。如果他们回答是,我想运行onDelete()。如果下面的代码也响应“否”,则会运行onDelete() componentDidMount() { this.setupBeforeUnloadListener(); } setupBeforeUnloadListener() { window.addEventListener("beforeunload", (event) => { event.returnValue =

确认警报在用户将要从React中的页面移动之前显示。如果他们回答是,我想运行
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()函数执行任何异步操作,则不能保证完成。有关更多信息,请参阅此讨论:

谢谢,我找到了!完全解决了!