/beforeRouteLeave: 内调用 methods: 应该如何调用呢? undefind !
发布于 9天前 作者 mayaxxp 167 次浏览 来自 问答
粉丝福利 : 关注VUE中文社区公众号,回复视频领取粉丝福利

methods:{ loginHander:function(@event){ console.log(“form loginHander”) } }, beforeRouteLeave:(to, from, next) => { if(to.name==="Firstpage"){
next(); this.loginHander(); // undefind ! why ? }else{ alert(“登录失败”); next(); } } 捕获.PNG

10 回复

next(vm) //vm 就是当前组实例

@bellychen 依然报错:" TypeError: Cannot read property ‘loginHander’ of undefined

@mayaxxp 在next 里做操作, beforeRouteLeave 是拿不到this的

@ab8512 / 微信截图_20190908222249.png/ 是在 vue 组件内默认导出的 这种应该怎么获取 vm 实例呢 ,小白问题~,请赐教;还有就是 next(vm); vm 怎么调用 loginHander() ? 是 next(vm.loginHander()); ?

next( vm => {
    vm.loginHander()
})

@ab8512 beforeRouteEnter 中可以 但是 beforeRouteLeave内 就不能调用了,不知道什么问题

beforeRouteLeave (to, from , next) {
 // console.log(this) 看看, 应该是支持读取this的
}

@ab8512

this 也是 不行 undefined 这个 一开始 就试过 ;真不明白 这是什么机制;beforeRouteEnter 中可以 但是 beforeRouteLeave内 就不能调vm

beforeRouteEnter 中使用vm 是因为实例还没有初始化只能通过回调函数进行传递, beforeRouteLeave 中是可以直接调用this, 因为实例已经初始化了

回到顶部