Javascript 在react中,路由器是唯一的,与onLeave相同

Javascript 在react中,路由器是唯一的,与onLeave相同,javascript,reactjs,react-router,Javascript,Reactjs,React Router,在onEnterhook的react路由器中,他们指定了如何处理,但对于onLeave没有示例。我的问题是如何确认用户想要正确离开页面 根据下面给出的代码,无论用户单击取消还是确定都会离开页面。但是,根据逻辑,一个内钩工作正常 const checkEnterAbout = (nextState, replace, callback) => { if(!confirm('do you want to enter really!!!')){ replace(`/`);

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

根据下面给出的代码,无论用户单击
取消
还是
确定
都会离开页面。但是,根据逻辑,一个内钩工作正常

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} />

有一个名为
routerWillLeave
的钩子,下面是一个示例:


您想确认用户离开的任何页面吗?或者只是关于页面?将导出默认withRouter(关于)更改为module.exports=withRouter(关于)后的只是关于页面;它正在工作。想知道为什么onLeave和onenterAPI接口不一样。一个是通过componentDidMount工作,另一个是通过使用OneNet!!!
Failed prop type: Invalid prop `component` supplied to `Route`.
    in Route