开锁页面的头像获取问题
来源:4-2 开锁页面的实现_2
小孩子101
2021-06-27 23:23:57

cc老师,我框出来的地方,是不是微信官方又更新了什么??在vscode里敲代码时,会自动补上问号,当我以为提示错误时,于是强行删掉问号,编译器又会只能提示什么‘未定义’。

当我加上问号以后,在微信开发者工具里面编译,console又会报出undef的提示。
在微信小程序开发上,我太多的东西需要学习(0基础),对于有的同学这里也许是一个小问题,但是我自己解决起来,着实有点困难,所以还是请cc老师协助一下吧。
在后面的地图主页面也是出现了一样的问题,开锁页面不理会那个代码(问号)的问题,还是可以获取头像,但是地图页面就不行了,直接没有效果。

1回答
ccmouse
2021-06-30
首先抱歉这个问题回的晚了。
这个?没有问题。我在
第4周函数的定义https://class.imooc.com/lesson/1763#mid=40779
第4+周接口 https://class.imooc.com/lesson/1764#mid=40796
中都有讲到?
尤其在4+周的接口的高级技巧里面说到了可选参数的串联。https://class.imooc.com/lesson/1764#mid=40797
那么我们这边我没有看到你的IAppOption.glocalData.userInfo是怎么定义的。很可能是一个可选的字段。所以编辑器会自动帮你加上userInfo?.avatarUrl。这是可以的,我的代码在app.ts中可能会有编译错误。我提供的修改方法是把?去掉:https://git.imooc.com/class-108/coolcar/pulls/5/files 当然另外一种方法是在https://git.imooc.com/class-108/coolcar/src/master/wx/miniprogram/appoption.ts#L3 处改为
userInfo: Promise<WechatMiniprogram.UserInfo|undefined>
这两种方法都是可取的,同学很可能采用了第二种方法。
那么我们真正的错误是undefined提示,根据可选参数的串联中讲到的,要么userInfo是undefined,要么avatarUrl是undefined。我们要检查一下他们为什么会undefined,检查一下userInfo是如何被resolve的。同样地图页面也是这样。
相似问题