请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

UserProfile报错

图片描述
麻烦老师看一下PostDetail的页面取值是不是存在bug 导致currentPost.author是string,给UserProfile传值的时候 会报错

正在回答 回答被采纳积分+3

2回答

张轩 2021-12-07 10:04:36

同学你好

这里的问题就在于

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 实现了类型守卫,类型的范围自动缩小了。

2 回复 有任何疑惑可以回复我~
  • 提问者 慕工程7143520 #1
    好的,我试一下,谢谢老师
    回复 有任何疑惑可以回复我~ 2021-12-07 10:06:13
张轩 2021-12-06 17:43:01

同学你好 请提供给我一下你的源代码(git) 我帮你在本地调试一下 非常感谢

0 回复 有任何疑惑可以回复我~
  • 提问者 慕工程7143520 #1
    https://gitee.com/ye-fusen/find-bug.git
    三个报错 麻烦老师都帮忙看一下
    1.Uncaught SyntaxError: Identifier 'pluginnamearr' has already been declared
    2.Invalid prop: type check failed for prop "user". Expected Object, got String with value "6090d803b558154f0392cc87".
    3.helper.ts?aef4:27 Uncaught (in promise) TypeError: Cannot create property 'avatar' on string '6090d803b558154f0392cc87'
    回复 有任何疑惑可以回复我~ 2021-12-06 22:22:48
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信