TypeError:无法在模板标签中读取Null的属性
2022-03-05
3418
我的 Vue/Laravel 应用程序中出现“TypeError:无法读取 null 属性”错误。我从 API 获取数据。我可以在脚本标记中访问数据,例如在 mounted 方法中,但在模板中我无法访问数据。
<template>
<article class="hentry blog-post single-post single-post-v3">
<router-link :to="'/kategori/'+post.category.slug" class="post-category bg-primary">{{post.category.title}}</router-link>
<h1 class="post-title">{{post.title}}</h1>
...
</template>
<script>
export default {
components: {
FeaturedPosts,
Comments
},
async beforeRouteEnter(to, from, next) {
const returned = (await axios.get(route("api.post", to.params.slug))).data.response
next(vm => {
vm.post = returned.post;
vm.comments = (returned.comments != undefined) ? returned.comments.data : null;
vm.commentsPagination = (returned.comments != undefined) ? returned.comments : null;
});
},
data() {
return {
post: null,
comments: null,
commentsPagination: null,
};
},
}
</script>
它给出“未捕获(在承诺中)TypeError:无法读取 null 属性(读取‘category’)”。我可以在 mounted() 方法中访问 post.category,但在模板中我不能。
1个回答
next(vm => ...)
回调在实例创建后触发,不应依赖在那里初始化的状态,因为初始渲染发生在未初始化状态下。
它应该是:
return {
post: [],
...
或者:
<article v-if="post" ...>
Estus Flask
2022-03-05