[Vuejs]不允许导航到当前位置(“ / ...”)

时间:2019-09-23 06:24:43

标签: javascript vue.js vue-router

在某些情况下,我的logrocket总是提示我以下错误

不允许导航到当前位置(“ /错误”)

但是,当我在Web应用程序中对其进行检查时。它运作完美。我不知道为什么洛罗克 总是在某些用户中提示此错误。

以下是我的js代码

 gotoErrPage () {
      this.$router.replace({
        name: 'Error',
        query: {
          showRefresh: true,
        },
      })
    },

1 个答案:

答案 0 :(得分:0)

最后我明白为什么会这样。您在控制台中看到的错误是新的promise api的一部分:在以前,如果没有向router.push提供回调,则错误仅发送到全局路由器错误处理程序。现在,由于push和replace都返回了一个promise,因此,如果未捕获到导航失败(取消导航的任何事情,如next(false)或next('/ other')也算在内),您将在控制台中看到错误因为没有兑现承诺。但是,故障始终存在,因为尝试导航到与当前故障相同的位置。由于承诺被拒绝但未被兑现,因此现在可见。

我可以通过以下两种解决方案来解决此问题。第一种解决方案是使用router-link。

<router-link
  to="/Error"
  v-slot="{ href, route, navigate, isActive, isExactActive }"
>

</router-link>

第二个解决方案是在我的函数中添加catch

   this.$router.replace({
        name: 'Error',
        query: {
          showRefresh: true,
        }).catch(err => {})