9***@qq.com
9***@qq.com
  • 发布:2024-08-26 14:15
  • 更新:2024-08-27 13:36
  • 阅读:148

uts类型问题

分类:uni-app x

uni.request({
url:xxx,
method:'POST',
data:xxx,
success:(res)=>{
if(res.data){
switch(res.data.result){

这里res.data.result在web运行不报错,但是编译到手机端,会有一个error,

是error: Unresolved reference: result‌

看着像是类型推断的错误,

请问这种应该怎么处理, 我改为 res.data as any 也不行

2024-08-26 14:15 负责人:无 分享
已邀请:
DCloud_Android_DQQ

DCloud_Android_DQQ

你先确认一下 res.data 是什么类型

如果是UTSJSONObject 需要 res.data['result'] 访问

https://doc.dcloud.net.cn/uni-app-x/uts/buildin-object-api/utsjsonobject.html

  • 9***@qq.com (作者)

    感谢回复, 改为 之后,虽然编译可以通过了,但是发送请求拿到数据之后,手机端就会报错崩溃, 打印 typeof res.data发现类型是string,无法转为UTSJSONObject,请问是什么原因, 后端返回的是json对象,为什么认定为string

    submit string at pages/login/index.uvue:166

    13:13:28.669 ‌error: java.lang.ClassCastException: java.lang.String cannot be cast to io.dcloud.uts.UTSJSONObject‌

    13:13:28.669 at pages/login/index.uvue:167:6

    13:13:28.669 165| success(res){

    13:13:28.669 166| console.log('submit',typeof res.data)

    2024-08-27 13:19

  • 9***@qq.com (作者)

    (res.data as UTSJSONObject)['result']


    这是上面场景使用的代码样子

    2024-08-27 13:20

9***@qq.com

9***@qq.com (作者)

我在web上打印出来 同样的res.data,类型是object, 但是手机调试,打印出来 类型就是string,然后就出现上面的转换UTSJSONObject转换错误

要回复问题请先登录注册