Не удалось получить доступ к магазину из Vuex [Quasar] - PullRequest
0 голосов
/ 08 октября 2019

Я пробую Quasar в первый раз и пытаюсь использовать Vuex с модулями, но не могу получить доступ к свойству $ store ни с помощью ... mapState. Я получаю следующее сообщение об ошибке «Невозможно прочитать свойство« журнал »неопределенного», хотя я вижу, что журнал обещаний существует в Vue Devtools. Печать из Devtools

Вот мой магазин \ index.js

import Vue from 'vue';
import Vuex from 'vuex';
import logbook from './logbook';

Vue.use(Vuex);
export default function (/* { ssrContext } */) {
  const Store = new Vuex.Store({
    modules: {
      logbook,
    },
    strict: process.env.DEV,
  });
  return Store;
}

Здесь находится компонент

<template>
  <div>
    <div>
      <h3>RFID</h3>
      <q-btn @click="logData"
             label="Save"
             class="q-mt-md"
             color="teal"
      ></q-btn>
      <q-table
        title="Logbook"
        :data="data"
        :columns="columns"
        row-key="uid"
      />
    </div>
  </div>
</template>

<script>
import { mapState, mapGetters, mapActions } from 'vuex';

export default {
  name: 'RFID',
  mounted() {
    this.getLogbookData();
  },
  methods: {
    ...mapActions('logbook', ['getLogbookData']),
    ...mapGetters('logbook', ['loadedLogbook']),
    ...mapState('logbook', ['logbookData']),
    logData: () => {
      console.log(this.loadedLogbook);
    },
  },
  data() {
    return {

    };
  },
};
</script>

<style scoped>

</style>

Здесь указано состояние. js

export default {
  logbookData: [],
};

Ошибка, которую я получаю на консоли

Обновление: Решил проблему путем рефакторинга способа, которым я объявил функцию. Я изменил с:

logData: () => { console.log(this.loadedLogbook); }

на

logData () { console.log(this.loadedLogbook); }

1 Ответ

0 голосов
/ 11 октября 2019

Проверьте файл .quasar/app.js. Есть ли строка, похожая на import createStore from 'app/src/store/index', и магазин позже экспортируется вместе с приложением в тот же файл?

...