У меня есть одно асинхронное действие vuex, я использую средства получения карт и функцию, созданную компонентом, для извлечения и заполнения данных, если я использую этот встроенный объект хранилища данных в консоли представления шаблона, ошибка отображения не определена, если я пытаюсь получить доступ к переменной только без встроенного объекта imполучая неопределенную ошибку для встроенного объекта, я думаю, что эта ошибка связана с тем, что асинхронная функция не блокирует основной компонент процесса полностью загруженным, а после заполнения асинхронной функции переменная
действия, состояние
// state
export const state = {
app: null
}
// getters
export const getters = {
app: state => state.app,
}
// mutations
export const mutations = {
[types.FETCH_APP_SUCCESS] (state, { app }) {
state.app = app
},
[types.FETCH_APP_FAILURE] (state) {
state.app = null
},
[types.UPDATE_APP] (state, { app }) {
state.app = app
}
}
async fetchApp ({ commit }) {
try {
const { data } = await axios.get('/api/app/1')
commit(types.FETCH_APP_SUCCESS, { app: data })
} catch (e) {
commit(types.FETCH_APP_FAILURE)
}
}
компонент
<template>
<div>
{{app.name}}
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
middleware: 'auth',
created () {
// i try here async and await
this.$store.dispatch('app/fetchApp')
},
computed: mapGetters({
app: 'app/app'
}),
metaInfo () {
return { title: this.$t('home') }
}
}
</script>
состояние заполнено
переменная может видеть в html
, но утешает эту ошибку