есть ли данные в сторе и если нет то загрузить их с сервера. Делаю через middleware
в сторе есть action
async fetchAllData( { commit }, param ) {
...
commit( 'UPDATE_DATA', data );
}
в роутере в beforeEach делаю:
import allData from './middleware/allData'
import store from "./store/modules/general.js";
router.beforeEach( async ( to, from, next ) => {
const middleware = allData;
const context = {
to,
from,
next,
store
}
return middleware({ ...context });
});
сам middleware
export default async function guest ({ next, store, to }){
.....
if( !store.state.loadedAllData ) {
await store.actions.fetchAllData( store, param );
}
return next()
}
`
но в ответ получаю "Ошибка загрузки данных TypeError: commit is not a function"
как сделать чтобы у него commit появился не могу понять? когда выполняю тот же экшин в компоненте через mapActions - там он сам пробрасывается как то же?
похоже на не верно указанные пути. модули в сторе с каким пространством имен? Покажи как дергаешь экшн из компонента?
store.dispatch('func_name', context)
Обсуждают сегодня