退出登录跳转到 Home 报错

报错信息
退出登录跳转到 Home 报错
需要重写 push 方法才能解决:

import Router from 'vue-router'
/**
 * 重写路由的push方法
 */
const routerPush = Router.prototype.push
Router.prototype.push = function push(location) {
  return routerPush.call(this, location).catch(error=> error)
}

这种情况,是我哪里写的不对?还是版本存在问题呢?
VUE:2.9.3
vue-router: 3.1.3

最佳答案

这个问题是 vue-router 版本的问题,解决办法:移除当前版本,安装 vue-router@3.0

4年前 评论
讨论数量: 8
自由与温暖是遥不可及的梦想

你给我看你怎么跳转的。我怎么知道你为啥报错。你就给这个 我能怎么说

4年前 评论

@DreamOfFreedom
退出我就按照教程中写的,忽略了看不到教程的情况,


//  logout 方法
  methods: {
    logout() {
      this.$swal({
        text: '你确定要退出吗?',
        confirmButtonText: '退出'
      }).then((res) => {
        if (res.value) {
          this.$store.dispatch('logout')
        }
    })
      }
  }

#store actions
const actions = {
  login({ commit }, user) {
    if (user) commit('UPDATE_USER', user)
    commit('UPDATE_AUTH', true)
    router.push('/')
  },
  logout({ commit }) {
    commit('UPDATE_AUTH', false)
    router.push({ name: 'Home', params: { logout: true } })
  }
}
4年前 评论
自由与温暖是遥不可及的梦想

你可以自己改呀,不一定要走教程里面。 不在 store 里面进行跳转 而且 你的stroe 里面引入了 router.js 么?

4年前 评论

@DreamOfFreedom
如果没引入 router.push() 方法怎么用?不是语法错误吗?我也写到了解决方法,只是想咨询下原因。

4年前 评论
自由与温暖是遥不可及的梦想

明日我去看看。再告诉你

4年前 评论
自由与温暖是遥不可及的梦想

我尝试了源码,没有问题。请你写的代码 与源码进行比较

4年前 评论

@赖皮小鳄鱼 您好,你的问题和我一样。主要讯息告诉你跳转路由在同一个。

其实可以写成 router.push({ name: 'Home', params: { logout: true } }).catch(() => {}) 这样就不会出现错误讯息。

4年前 评论

这个问题是 vue-router 版本的问题,解决办法:移除当前版本,安装 vue-router@3.0

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!