UserProfile报错
来源:9-9 作业 完成文章详情页
慕工程7143520
2021-12-06
麻烦老师看一下PostDetail的页面取值是不是存在bug 导致currentPost.author是string,给UserProfile传值的时候 会报错
写回答
2回答
-
张轩
2021-12-07
同学你好
这里的问题就在于
store.dispatch('fetchPost', currentId) 这个是 onMounted 时候发送的。 在发送之前对应的 Post 还没有作者的信息(数据是从 Post 列表里面拿到的,对应的 author 只有对应的 ID) 所以等于在 string 类型上取一个对象的属性 自然就报错了。 在这里我们可以多添加一个 v-if 等数据取得,author 有了这个信息再做处理 <user-profile :user="currentPost.author" v-if="typeof currentPost.author === 'object'"></user-profile>
这样修改就可以了,而且你会发现这里的类型错误也消失了,因为我们用 typeof 实现了类型守卫,类型的范围自动缩小了。
212021-12-07 -
张轩
2021-12-06
同学你好 请提供给我一下你的源代码(git) 我帮你在本地调试一下 非常感谢
012021-12-06