Состояние объекта Vuex правильное, но при попытке извлечения оно говорит undefined

#node.js #vuex

#node.js #vuex

Вопрос:

https://imgur.com/htWRzy7

Привет, это отладочная картинка моего хранилища. Мне интересно получить массив, найденный в:

магазин -> состояние -> лекарства -> все -> предметы

Как вы можете видеть, массив заполнен данными (ранее загруженными через мутацию). Когда я пытаюсь распечатать массив с помощью:

  console.log(this.$store.state.medicines.all.items)
  

Я получаю undefined.

 data() {
    return {
      meds: []
    }
  },
  computed: {
    ...mapState({
      medicines: state => state.medicines.all
    })
  },
  created() {
    this.getAllMeds()
    this.printMedicines()
  },
  methods: {
    ...mapActions('medicines', {
      getAllMeds: 'getAll'
    }),
    printMedicines() {
      let medications = this.$store.state.medicines.all.items
      console.log(medications)
    }
  }
  

Редактировать: я включил фрагмент кода для дальнейшего разъяснения.

Комментарии:

1. Откуда вы пытаетесь сделать журнал?

2. В методе внутри методов: который я вызываю затем в created() после того, как я вызываю свой метод мутации getAllMeds() .

3. Что происходит при getAllMeds мутации? Получает ли он данные с сервера?

4. Да, он загружает все лекарства и изменяет состояние лекарств . Эта часть работает хорошо, я протестировал ее с помощью инструмента разработки Vue, чтобы убедиться. Я отредактирую сообщение с некоторыми фрагментами кода, может быть, вы сможете понять это таким образом.

5. Похоже, что данные возвращаются асинхронно и, возможно, они еще не были загружены к моменту запуска console.log .