¿Cómo acceder a los datos de la tienda asíncrona en vue-router para usarlos antes del enlace de entrada?
¿Cómo es posible acceder a los datos de la tienda en beforeEnter que se recupera de forma asincrónica a través de la acción de la tienda?
import store from './vuex/store';
store.dispatch('initApp'); // in here, async data will be fetched and assigned to the store's state
// following is an excerpt of the routes object:
{
path: '/example',
component: Example,
beforeEnter: (to, from, next) =>
{
if (store.state.asyncData) {
// the above state is not available here, since it
// it is resolved asynchronously in the store action
}
}
}
Esto es especialmente importante en la primera carga de la página o después de una recarga de la página, cuando se recuperan los datos de inicio y el enrutador necesita esperar a que esos datos le permitan al usuario acceder a esa página o no.
¿Es posible que el enrutador "espere" a que se obtengan los datos? ¿O cuál es la mejor manera de manejar la protección de navegación en combinación con los datos asincrónicos de la tienda vuex?
(ah y rellenar previamente "asyncData" no puede ser la solución, ya que el gancho beforeEnter debe tomar una decisión sobre los datos reales de la base de datos, no los datos predeterminados)