Есть страница с данными user'a, которые получаем через getUser.name
Все данные подгружаются норм, но вот есть вложенный объект (парент юзера), доступ к данным которого получаем: getUser.parent_user.id
vue devtools видит parent_user у getUser, на странице данные этого объекта подгружаются, но в консоли появляется ошибка:
Error in render: "TypeError: can't access property "id", _vm.getUser.parent_user is undefined"
Почитал, что подобное происходит из-за асинхронности и решается добавлением к блоку v-if:
v-if="getUser.parent_user" - ошибка пропадает в консоли, но доступ к объекту getUser.parent_user по прежнему отсутствует, как получить к ним доступ?
Вот код:
<template>
<b-container>
<b-card>
<b-card-text>Email: {{ getUser.email }} disabled</b-card-text>
<b-card-text>
Mentor:
<router-link :to="{ name: 'show-user', params: { id: getUser.parent_user.id } }"
class="card-link"
>
{{ getUser.parent_user.name }} {{ getUser.parent_user.last_name }}
</router-link>
</b-card-text>
</b-card>
</b-container>
</template>
<script>
import { mapActions, mapGetters } from "vuex";
export default {
name: 'ShowUser',
computed: {
...mapGetters(['getUser']),
},
methods: {
...mapActions(['showUser']),
},
mounted() {
this.showUser(this.$route.params.id)
}
}
</script>
А это из store:
import * as userService from '../../services/user_service'
export default {
state: {
user:[]
},
getters: {
getUser(state) {
return state.user
}
},
actions: {
async showUser({commit}, userId) {
const user = await userService.loadOneUser(userId)
commit('SET_USER', user.data)
}
},
mutations: {
SET_USER(state, user) {
state.user = user
}
}
}