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);
回到顶部