uni-app uni-id 的 uniID.updateUser() 接口传参问题
uni-app uni-id 的 uniID.updateUser() 接口传参问题
产品分类:uniCloud/App
示例代码:
// params = { uid: "6108e13e3a9af400012bc816", game_status: 1 }
let args = { ...params }
res = await uniID.updateUser(args)
操作步骤:
// 直接传入对象,失败,报错:docId必须为字符串或数字
// params = { uid: "6108e13e3a9af400012bc816", game_status: 1 }
res = await uniID.updateUser(params)
// 赋值给空对象再传入,失败,报错:docId必须为字符串或数字
// params = { uid: "6108e13e3a9af400012bc816", game_status: 1 }
let args = params
res = await uniID.updateUser(args)
预期结果:
{
"code": 0,
"msg": "获取用户信息成功",
"userInfo": {...},
"message": "获取用户信息成功"
}
实际结果:
{
"code": "FUNCTION_EXCUTE_ERROR",
"message": "docId必须为字符串或数字"
}
bug描述:
我封装了更改用户信息接口,但是参数不能直接为一个对象,不然就会报错“docId必须为字符串或数字”。解决方法为解构赋值给新的空对象再传入,直接使用等号赋值给新对象也不行,这是什么原因?
更多关于uni-app uni-id 的 uniID.updateUser() 接口传参问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
你直接在updateUser之前打印一下你传入的参数
更多关于uni-app uni-id 的 uniID.updateUser() 接口传参问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据你的描述,问题在于 uniID.updateUser() 接口的参数传递方式。该接口的第一个参数应为用户的 uid(字符串或数字),第二个参数才是要更新的用户信息对象。
你的代码中直接将包含 uid 和更新字段的对象作为第一个参数传入,这不符合接口预期。正确的调用方式应该是:
// params = { uid: "6108e13e3a9af400012bc816", game_status: 1 }
const { uid, ...updateData } = params;
const res = await uniID.updateUser(uid, updateData);

