[Vuejs] Переход к текущему местоположению ("/ ...") не разрешен - PullRequest
0 голосов
/ 23 сентября 2019

В некоторых случаях мой logrocket всегда запрашивает следующую ошибку

Переход к текущему местоположению ("/ error") не разрешен

Однако, когда я проверяю его в своей сетиприменение.Работает отлично.Я понятия не имею, почему logrocket всегда запрашивает эту ошибку у некоторых пользователей.

Вот мой код js

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

1 Ответ

0 голосов
/ 24 сентября 2019

Наконец я понимаю, почему это произошло.Ошибка, которую вы видите в консоли, является частью нового обещания api: раньше, если никакие обратные вызовы не были переданы на router.push, ошибки отправлялись только глобальному обработчику ошибок маршрутизатора.Теперь, поскольку push и replace возвращают обещание, если сбой навигации (что-либо, что отменяет навигацию, например, next (false) или next ('/ other')) также не обнаружена, вы увидите ошибку в консолипотому что это обещание отклонение не пойман.Тем не менее, сбой был всегда, потому что попытка перейти к тому же местоположению, что и текущее, не удалась.Теперь это видно из-за того, что обещание было отклонено, но не выполнено.

Я смог решить эту проблему с помощью двух решений следующим образом.Первое решение - использование router-link.

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

</router-link>

Второе решение - добавление улова в моей функции

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