Я пытаюсь использовать геттеры (vuex) для проверки некоторых условий в хуке beforeEach:
import paths from 'src/router/paths'
export default ({ router, store }) => {
router.beforeEach(async(to, from, next) => {
const seats = store.getters['cart/seats']
const seatUnassigned = seats.some(s => !s.passengerID)
const hasSeats = seats.length > 0
const path = to.path
if (path === paths.passenger) {
if (!hasSeats) {
await next(paths.home)
store.dispatch('alerts/updateEmptyCartDialog', true)
} else {
next()
}
} else {
next()
}
if (path === paths.payment) {
if (!hasSeats) {
await next(paths.home)
store.dispatch('alerts/updateEmptyCartDialog', true)
}
if (seatUnassigned) {
await next(paths.passenger)
store.dispatch('alerts/updateAssignPassengerToSeatDialog', true)
} else {
next()
}
} else {
next()
}
})
}
Он работает нормально, пока я не обновлю sh страницу на одном из путей выше (оплата, пассажир). Поскольку первая загрузка кажется асинхронной c, места отображаются как [] (хотя на самом деле у меня есть данные внутри, насколько это может быть странно?).
Печать ниже https://i.stack.imgur.com/gSNJe.png
Как правильно получить данные?