在React路由器中,Onenter与Onleave相同



onEnter挂钩的React路由器文档中,他们指定了如何处理,但是对于onLeave,没有示例。我的问题是如何确认用户想要正确离开页面。

根据下面给出的代码,无论用户是否单击cancelok,它都会离开页面。但是,按照逻辑效果很好地工作。

const checkEnterAbout = (nextState, replace, callback) => {
    if(!confirm('do you want to enter really!!!')){
        replace(`/`);
    }else{
        callback();
    }
}
const checkLeaveAbout = (prevState) => {
    console.log(prevState);
    return confirm("Are you sure you want to leave this page");
}
<Route path="/about"  component={About} onEnter={checkEnterAbout} onLeave={checkLeaveAbout} />

当我尝试使用确认指南时。它给我一个错误

Failed prop type: Invalid prop `component` supplied to `Route`.
    in Route

有一个称为 routerWillLeave的钩子,这是一个示例:

https://github.com/reaecttraining/reaect-router/blob/master/docs/guides/guides/confirmingnavigation.md

最新更新