繁体   English   中英

我们如何在使用 react 刷新页面之前调用函数

[英]How can we call a function before refreshing a page using react

我们的应用程序是使用 react 开发的,在刷新和路由导航时,我们需要检查页面中未保存的更改并显示警报。 对于这种情况,我们能够在页面导航中利用路由 API,但直接刷新页面似乎不起作用。

因此,在您的情况下,基本上用户输入了一个长表单,因此在以下情况下,您需要向他显示未保存的更改将丢失的消息。

  1. 单击任何链接切换到不同的组件时
  2. 刷新组件

因此,为了执行这些操作,有一个名为beforeunload的本机事件,因此您需要使用 componentDidMount 中的 document.addEventListener 将该事件添加到文档中,并且您可以在父组件的 componentWillUnmount 中卸载该事件

所以应该检查一下表单是否脏了,这意味着用户输入了一些东西,比如 redux-form 中的 isDirty 。

因此,每当用户输入内容时,您都可以根据此值将此值设置为 true,如果用户单击刷新,您可以检查并执行它

您可以查看更多的在这里

所以你可以在父级别持有一个状态变量,并基于此你可以触发它

你可以使用 Promise struct 并运行你的刷新其他任何你想要的

export const unSavedChanges= (values,listTitle)=>    new Promise((resolve, reject) => {
//Your code of check, validation what ever
})

当你调用这个函数时

unSavedChanges(changes,"list").then(response=>{
refresh.page
}
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM