Компонент beforeRouteEnter не срабатывает после ошибки - PullRequest
0 голосов
/ 27 апреля 2020

Я использую https://www.npmjs.com/package/vue-error-page для отображения страниц с ошибками, таких как 404 или 500.

Теперь у меня возникла одна проблема: после вызова маршрута 404, beforeRouteEnter и beforeRouteUpdate` методы больше не вызываются, если я использую vue -рутер для доступа к странице, которая не выбрасывает 404.

Пример:

https://example.org/product/not-existing-product вызывает Product.vue, который выполняет API-вызов и использует перехватчик ax ios, чтобы бросить 404:

// Add response interceptor
window.axios.interceptors.response.use (function (response) {
    return response;
}, function (error) {
    if (404 === error.response.status) {
        main.$_error (NotFound);
    } else if (500 === error.response.status) {
        main.$_error (Internal);
    } else {
        return Promise.reject (error);
    }

    return Promise.reject (error);
});

Теперь, если я использую навигационное меню для посещения https://example.org/product/existing-product отображается пустой компонент, потому что методы beforeRouteEnter или beforeRouteUpdate больше не вызываются. Смонтированный метод компонента снова вызывается .

Итак, мои вопросы:

  • Как заставить мой компонент перезагрузить вызов API здесь ?
  • Должен ли я как-то здесь "сбросить" vue -рутер?
...