官方文档
参考小程序用户头像昵称获取规则调整公告
新的小程序版本不能通过wx.getUserProfile和wx.getUserInfo获取用户信息
<van-field label="{{Avatar}}" label-class="field-label" right-icon-class="field-right-icon-class"
input-class="field-input" input-align="right" readonly>
<view slot="right-icon" class="right-icon">
<button class="right-icon__btn" open-type="chooseAvatar" bindchooseavatar="getAvater"
style="border: 1px solid;"></button>
<image class="right-icon__avatar" src="{{userinfo.avatarUrl}}" />
</view>
</van-field>
<van-field label="{{Name}}" required label-class="field-label" error-message="{{nicknameMessage}}" input-class="field-input" input-align="right">
<input slot="input" value="{{ userinfo.nickname }}" type="nickname" class="right-input field-input" placeholder="{{PleaseInput}}{{Name}}"
placeholder-style="color: #c4c4c4" maxlength="{{30}}" bind:input="changeName" bind:change="changeName" />
</van-field>
注意昵称填写,同时绑定了input和change事件(input是用户输入时触发,change是直接选择微信昵称时触发)
getAvater(event) {
console.log(9, event);
console.log('event', event.detail.avatarUrl);
this.setData({
changeAvatar: true,
userinfo: Object.assign({}, this.data.userinfo, {
avatarUrl: event.detail.avatarUrl,
})
})
},
changeName(e) {
console.log('e.detail.value', e.detail.value);
this.setData({
userinfo: Object.assign({}, this.data.userinfo, {
nickname: e.detail.value
}),
nicknameMessage: !e.detail.value ? this.data.PleaseInput + this.data.Name : '',
})
},