为了账号安全,请及时绑定邮箱和手机立即绑定

beforeEnter调用 next 无作用问题 vue-router

beforeEnter调用 next 无作用问题 vue-router

呼唤远方 2019-02-13 14:15:19
直接上代码{      path: '/logout',      name: 'Logout',      beforeEnter: (to, from, next) => {        console.log('work') // 生效        next(vm => {          vm.$store.dispatch('logout') // 跑不进去        })      }    },不知道是不是小弟调用错误, 在beforeEnter 中的next 插了debug或console.log 动作都无法生效, 看样子是进程根本没跑进next中,目前是想要只要router连到/logout这个path就会进行登出($store.dispatch('logout'))想请问哥们有没有什么看法,或踩过这个坑的大大能给点指教跪了
查看完整描述

1 回答

?
MM们

TA贡献1886条经验 获得超2个赞

完整的导航解析流程

导航被触发。
在失活的组件里调用离开守卫。
调用全局的 beforeEach 守卫。
在重用的组件里调用 beforeRouteUpdate 守卫 (2.2+)。
在路由配置里调用 beforeEnter。
解析异步路由组件。
在被激活的组件里调用 beforeRouteEnter。
调用全局的 beforeResolve 守卫 (2.5+)。
导航被确认。
调用全局的 afterEach 钩子。
触发 DOM 更新。
用创建好的实例调用 beforeRouteEnter 守卫中传给 next 的回调函数。

在路由配置里的beforeEnter,路由组件还没被激活,next 里面是获取不到 vm 的
你可以在Logout这个组件的beforeRouteEnter里面next(vm => {})


查看完整回答
1 反对 回复 2019-02-24
  • 1 回答
  • 0 关注
  • 1909 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信