Я пытаюсь получить доступ к хранилищу данных (геттеры) в моем промежуточного маршрутизатора гвардии, но возвращает false


Я пытаюсь получить доступ к хранилищу данных (геттеры) в моем промежуточного маршрутизатора гвардии, но возвращает false

07.09.2020 09:44:16 Просмотров 28 Источник

Я создаю новую страницу "/gettingstarted" для новых пользователей, которые еще не создали суб-аккаунты внутри нашей системы. Таким образом, основываясь на данных нашего магазина, если у пользователя нет учетных записей, я должен перенаправлять их на страницу "/gettingstarted" каждый раз, когда пользователь переходит на другую страницу, но проблема в том, что каждый раз, когда я обновляю страницу, геттер "hasAccounts" визуализируется после перезагрузки страницы, что имеет смысл, потому что это то, что охраняет маршрутизатор. Но мне нужен способ обойти это, чтобы работать и заставить охранника маршрутизатора ждать геттера

middleware.js

Router.beforeEach(function (to, from, next) {
  if (!store.getters["accounts/hasAccount"]) {
    next({
      path: '/gettingstarted'
    })
  } else {
    next()
  }
})

Вот добытчик для извлечения истинного и ложного

store.js

 hasAccount(state) {
      if (state.accounts.data) {
        if (state.accounts.data.length > 0) {
          return true
        } else return false
      } else return false
    },
У вопроса есть решение - Посмотреть?

Ответы - Я пытаюсь получить доступ к хранилищу данных (геттеры) в моем промежуточного маршрутизатора гвардии, но возвращает false / I'm trying to access store data (getters) in my middleware router guard but returns false

Является ответом!
super wang

07.09.2020 09:52:03

Перезагрузка страницы приведет к повторной инициализации vuex. Таким образом, state.accounts.data должен быть сохранен с помощью файлов cookie или localStorage

Помочь в развитии проекта:
Закрыть X