猿问

关于react-router leave钩子的问题

我想让用户在当前路由跳转到别的路由前有一个confirm提示,但是我所有的路由都是用配置文件配置的,不是用react组件写的
代码:

        childRoutes: [

            {

                path: 'manage/cat',

                component: CatManager

            }, {

                path: 'manage/sku',

                indexRoute: {

                    component: SkuManager

                },

                childRoutes: [

                    {

                        path: 'add',

                        component: SkuCreate,

                        routerWillLeave: (nextLocation) => {

                            console.log('react router 路由跳转=======>',nextLocation);

                            return false;

                        }

                    }

                ]

            }

我想让用户在离开/manage/sku/add路由时执行一些动作,该怎么写?现在这样写并不执行啊

米琪卡哇伊
浏览 384回答 1
1回答

回首忆惘然

应该是onLeave事件吧routerWillLeave 是高阶组件容器withRouter重写的方法。你如果要用的话应该在组件内部使用,如下import React from 'react'import { withRouter } from 'react-router'const Demo = React.createClass({&nbsp; componentDidMount() {&nbsp; &nbsp; this.props.router.setRouteLeaveHook(this.props.route, () => {&nbsp; &nbsp; &nbsp; &nbsp; return 'funk away'&nbsp; &nbsp; })&nbsp; },&nbsp; render() {&nbsp; &nbsp; return <div>go</div>&nbsp; }})export default withRouter(Demo)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答