今天在使用react-router setRouteLeaveHook的钩子函数,不知道怎么实验就是成功。最后功夫不负有心人,终于让我找到使用setRouteLeaveHook的方法了
1、我在网络上找到关于如何使用的方法,
componentDidMount(){
this.props.router.setRouteLeaveHook(
this.props.route,
this.routerWillLeave
)
} routerWillLeave=(nextLocation)=>{
return '确认要离开?';
}
但是,欧额,要报错
无法找到props里面的router,
废了很大的劲,终于找到问题所在,
原因:
缺少react-router的 withRouter方法加工一下组件,所以找不到props里面的router
解决办法:
1、在组件头部引入react-router模块,要导入withRouter
import { withRouter } from 'react-router'
2、在导出组件的时候,通过withRouter方法对组件进行加工
export default withRouter(Login)
代码编译好之后,重新进入到页面,路由跳转就会出现提示