气死我了,气死我了,之前登录好好的,清了一下缓存,死活就登录不上,获取不了用户信息了,因为我很清楚啥都没改,这个bug真的莫名其妙。
解决方案:
原代码:
<Button onClick={login}>登录</Button>async function login() {const {code } = await Taro.login();Taro.getUserInfo(null).then(res => {//拿着用户信息登录{...res, code}})}
修改之后:
<Button openType='getUserInfo' onGetUserInfo={login}>登录</Button>async function login(event) {const {code } = await Taro.login();//拿着用户信息登录{...event.detail, code}}
原因:
为了方便开发者更好地使用获取用户信息的接口,具体优化调整如下:
1.获取用户头像昵称,第一次需要使用 button 组件授权,如果已经用组件授权了,wx.getUserInfo 可直接返回用户数据,无需重复授权弹窗。 2.如果没有用 button 组件授权,wx.getUserInfo 调用接口返回失败,提醒开发者需要先使用 button 组件授权。 3.用户可在设置中,取消授权。取消授权后需重新用 button 组件拉起授权。 此次调整仅会影响开发者工具、体验版和开发版,正式版本小程序暂不受影响。
查看官方解答
就很无语,因为没想到,意思是‘你可以使用wx.login但是第一次获取的时候必须是从button拿的’,反正最后问题是解决了,我只想说程序员何苦为难程序员呐!!!