在beforeRouteEnter中不能使用this的解决办法

在beforeRouteEnter中不能使用this的原因可以理解为,还没有进入组件,所以找不到this,

但是可以使用下面的方法访问,做一个next的回调,传入vm,vm就是组件实例,用vm代替this

比如 this.$router.replace就替换为vm.$router.replace就可以使用了

beforeRouteEnter(to, from, next) {
    next(vm => {
      if (vm.$store.state.isSelectedPro) {
        return true
      } else {
        vm.$message.info('请选择一个项目')
        vm.$router.replace('/layout/')
      }
    })
  },

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值