@pilolin
HTML программист

Как вызвать геттер в другом модуле vuex?

Пишу приложение используя vue, vuex и еще всякие приблуды. Есть модули store/user.js и store/accesses.js. В user есть геттер, который выдает id текущего пользователя. В accesses есть геттер, который отдает некий массив данных. Но мне необходимо отфильтровать данные, чтобы выдать только те, которые относятся к данному юзеру. Напрямую вызывать геттер не могу, так как это не тот модуль. И что делать не представляю.

export default {
  state: {
    user: {
      isAuthenticated: false,
      uid: null
    }
  },
  mutations: { /* ... */ },
  getters: {
    isUserAuthenticated: state => state.user.isAuthenticated,
    userUid: state => state.user.uid
  }
}

state: {
    accesses: [
      {
        id: 'fsfwefsfadsfas',
        user: '6BlfZKVMUsWTd1W5KAHIZ3XLmmA2',
      },
      {
        id: 'fsfwefsfaeqwdsfas',
        user: '6BlfZKVMUsWTd1W5KAHIZ3XLmmA2',
      }
    ]
  },
  mutations: { /* ... */ },
  getters: {
    getAccesses: state => state.accesses
  },
  actions: { /* ... */ }
}

P.S. В принципе, могу в компоненте Accesses.vue отфильтровать данные по пользователю, но мне кажется что получать все данные (по всем пользователям) это не то что нужно. Или я где-то загоняюсь?
  • Вопрос задан
  • 1848 просмотров
Решения вопроса 1
0xD34F
@0xD34F
Читаем документацию внимательнее, там сказано, что геттер

получает следующие аргументы <...> При определении в модуле

state,       // при использовании модулей — локальный state модуля
getters,     // локальные геттеры текущего модуля
rootState,   // глобальный state
rootGetters  // все геттеры

Особое внимание - на четвёртый параметр.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы