我希望我的 ReactJS 应用程序在离开特定页面时通知用户。特别是提醒他/她执行操作的弹出消息:
“更改已保存,但尚未发布。现在做吗?”
我应该在全球范围内触发 react-router
,还是可以从反应页面/组件中完成?
我还没有找到关于后者的任何东西,我宁愿避免第一个。除非它当然是常态,但这让我想知道如何在不必向用户可以访问的每个其他可能页面添加代码的情况下做这样的事情。
欢迎任何见解,谢谢!
原文由 Barry Staes 发布,翻译遵循 CC BY-SA 4.0 许可协议
react-router
v4 引入了一种使用Prompt
阻止导航的新方法。只需将其添加到您要阻止的组件中:这将阻止任何路由,但不会阻止页面刷新或关闭。要阻止它,您需要添加它(根据需要使用适当的 React 生命周期进行更新):
onbeforeunload 有多种浏览器支持。