У меня проблема с геттерами Vuex, когда гиттеры возвращаются как неопределенные (в консоли Vue Dev, и в консоли Chrome Dev не регистрируются ошибки).
Если mapGetters()
закомментировано (например,приведенный ниже пример кода), возвращенные данные отображаются на экране -> если пользователь нажимает на ссылку, содержащую данные.Данные НЕ будут отображаться, если пользователь заходит в приложение непосредственно в том месте, где должны отображаться данные.
Существует аналогичный вопрос , но нет принятого ответа
Журналы консоли Vue:
СОСТОЯНИЕ:
$ _ lgdHRS: Объект
Всего: 129
ПИСЬМА:
$ _ lgdHRS / totHrs: не определено
SomeContainer.vue
<script>
import store from '../../_store'
import { mapState, mapGetters } from 'vuex'
export default {
computed: {
...mapState('$_lgdHRS',{
totHrs : 'totHrs',
}),
// ...mapGetters('$_lgdHRS',{
// totHrs : 'totHrs',
// airHrs : 'airHrs',
// picHrs : 'picHrs',
// pmcHrs : 'pmcHrs',
// voHrs : 'voHrs',
// trngHrs : 'trngHrs'
// }),
},
created() {
this.storeKey = '$_lgdHRS';
if (!(this.storeKey in this.$store._modules.root._children)) {
this.$store.registerModule(this.storeKey, store);
}
},
mounted() {
this.$store.dispatch('$_lgdHRS/getLogSummary');
},
}
</script>
<template>
<total-summary :hours="totHrs" />
</template>
state.js
export const state = {
totHrs: Number,
}
getters.js
const totHrs = state => state.totHrs;
export default {
totHrs,
};
mutations.js
const
TOTAL_HRS_UPDATED = (state, totHrs) => {
state.totHrs = +totHrs;
};
export default {
TOTAL_HRS_UPDATED,
};