store/profile.js
import Axios from 'axios'
const state = {
profile: null
}
const actions = {
loadProfileOnce: async ({commit}, id) => {
try {
const {data} = await Axios.get('http://127.0.0.1:3001/api/profile/' + id)
console.log(data)
if (data) {
commit('loadProfileOnce', data)
} else {
console.log('errorororo')
}
} catch (error) {
throw error
}
}
}
const mutations = {
loadProfileOnce: (state, payload) => {
state.profile = payload
}
}
const getters = {
getOneProfile: state => {
return state.profile
}
}
В компоненте пишу так:
profile.vue
created () {
this.$store.dispatch('loadProfileOnce', this.profileId)
},
computed: {
...mapGetters(['getOneProfile'])
},
Приходит объект. Когда я обращаюсь к
{{ getOneProfile}}
, нормально выводит объект, а когда я вывожу свойство в шаблоне
{{ getOneProfile.profile.name }}
, вываливаются ошибки при рендринге. ПОНЯТНО, что дело в асинхронности. Я не понимаю, что я делаю не так, и как исправить, чтобы это заработало.