在userinfo.vue文件中:
...
<uni-list>
<uni-list-item class="item" @click="setNickname('')" title="昵称" :rightText="userInfo.nickname||'未设置'" link>
</uni-list-item>
<uni-list-item class="item" @click="setGender()" title="性别" :rightText="userInfo.gender === 1 ? '男' : userInfo.gender === 2 ? '女' : '未设置'" link>
</uni-list-item>
<uni-list-item class="item" @click="bindMobile" title="手机号" :rightText="userInfo.mobile||'未绑定'" link>
</uni-list-item>
...
上面粗体是增加了性别的设置;在后面的代码中,增加了:
setGender() {
this.$refs.genderDialog.open()
},
async confirmGender(gender) {
try {
// 直接调用mutations.updateUserInfo来更新性别
await mutations.updateUserInfo({gender: gender})
this.$refs.genderDialog.close()
uni.showToast({
title: '设置成功',
icon: 'success'
})
} catch (e) {
uni.showToast({
title: e.message || '设置失败',
icon: 'none'
})
console.error('设置性别失败', e)
}
},
测试时,前端提示:设置成功;但是在控制台打印出来的是:
16:56:49.023 onDBError {code: "PERMISSION_ERROR", message: "权限校验未通过,请参考文档:https://uniapp.dcloud.net.cn/uniCloud/schema.html#handler-permission-error"} at common\appInit.js:32
16:56:49.024 PERMISSION_ERROR 权限校验未通过,请参考文档:https://uniapp.dcloud.net.cn/uniCloud/schema.html#handler-permission-error at common\appInit.js:37
而同样的昵称配置的代码:
setNickname(nickname) {
if (nickname) {
mutations.updateUserInfo({
nickname
})
this.setNicknameIng = false
this.$refs.dialog.close()
} else {
this.$refs.dialog.open()
}
},
却可以正确执行,请问为社么?
szwxj (作者)
找到了,是查询时没有带性别字段的原因
2025-08-17 15:16