У меня есть компонент, который загружает одного пользователя, поэтому я использую защиту 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");
});
},
//...