VUEX Getter. Как мне забрать состояние из магазина - PullRequest
0 голосов
/ 21 февраля 2020

Итак, в настоящее время у меня есть список проектов, созданных и сохраненных в модуле, импортированных из магазина и используемых на моей "домашней" странице. Я использую "mapGetters (['allProjects'])", который тянет в моем списке. Но как я могу ссылаться на этот список в методах, et c.

Мой "projectList. js module" выглядит так:

// Get db projects
import db from '@/firebase/init.js'

const state = {
  projectList: null

}

const getters = {
  allProjects: state => state.projectList
}

const actions = {
  fetchProjects ({ commit }) {
    if (state.projectList == null) {
      const projectLoop = []
      db.collection('Projects')
        .get()
        .then(snapshot => {
          snapshot.forEach(doc => {
            const project = doc.data()
            project.id = doc.id
            projectLoop.push(project)
            // console.log(project)
          })
        })
      // console.log(projectList)
      commit('setProjects', projectLoop)
    }
  }
}

const mutations = {
  setProjects: (state, projects) => (state.projectList = projects)
}

export default {
  state,
  getters,
  actions,
  mutations
}

Что я тогда запускаю со своей домашней страницы;

created() {this.fetchProjects()}

и получение результатов через

computed: mapGetters(['allProjects'])

Я могу используйте это в моем коде с помощью «project.title», но когда я запускаю что-то вроде

console.log('console-test ' + this.$store.getters.allProjects)

, я получаю «console-test [object Object], [object Object]», как правильно вызвать массив / объект

1 Ответ

1 голос
/ 21 февраля 2020

В компоненте правильный способ использовать методы получения карты:

  computed: {
    ...mapGetters({
      allProjects: 'allProjects'
    })
  },

И тогда вы можете назвать его

console.log ('console-test:', this .allProjects)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...