Есть ли способ показать отзыв о тосте bootstrap - vue $ в beforeRouteEnter? - PullRequest
1 голос
/ 06 марта 2020

У меня есть компонент, который загружает одного пользователя, поэтому я использую защиту vue-router для загрузки данных и в случае ошибки перенаправления обратно на компонент списка пользователей.

Есть ли способ показать vue-bootstrap $toast? Обычно я получаю доступ к $toast из this компонента, но, очевидно, this еще не существует в beforeRouteEnter.

Я знаю, что могу управлять другими способами (показать ошибку на странице и использовать created(), или используйте vuex, чтобы сохранить ошибку и показать ее на следующей странице), но поскольку я использую $toast везде, я хотел бы сохранить последовательность.

У меня нет идей ... если бы только я мог получить доступ к компоненту root, у меня был бы доступ к $toast, но я не вижу пути.

// userComponent

// ...
  beforeRouteEnter(to, from, next) {
    Promise.all([store.dispatch("users/fetchOne", { id: to.params.id } )])
      .then(next)
      .catch(() => {
        // this.$root.$bvToast.toast("ERROR!!!", { variant: "danger" }); // can't do this :(
        next("/users");
      });
  },
//...
...