【问题标题】:React router v4 get user confirmation when leaving pageReact router v4 在离开页面时获取用户确认
【发布时间】:2017-11-17 17:56:04
【问题描述】:

在旧版本中,我可以在组件中使用 setRouteLeaveHook。

例如(SO):Detecting user leaving page

使用 react router v4,逻辑已经改变,不再将路由器本身注入组件,我只在路由器 v4 上找到了以下功能:

BrowserRouter. getUserConfirmation

我有点困惑,为什么我应该将确认行为与路由器本身而不是特定组件联系起来!?

当我离开我的组件(链接到我当前的路线)时,我如何放置一个确认窗口,同时处于某种状态?上面的函数好像不支持这个。

【问题讨论】:

    标签: reactjs react-router react-router-v4


    【解决方案1】:

    我认为Prompt component 是您正在寻找的。只需在您要确认导航表单的组件中渲染它,即您在<Route> 中渲染的相同组件。

    【讨论】:

    • 看起来很有希望,我想知道为什么我之前在反应训练中没有发现它。将检查并响应成功/失败。
    • 我一直在寻找一种为用户提供自定义提示的方法,可能类似于ample-alerts。但是,大多数实现都使用此特定方法,并且它依赖于浏览器默认提示。
    【解决方案2】:

    react-router-navigation-prompt 也可以做你想做的事:它是一个更强大的<Prompt />

    【讨论】:

    • 这对我有用,它提示默认系统提示,无需使用其他模式。
    猜你喜欢
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多