2***@qq.com
2***@qq.com
  • 发布:2025-01-16 14:51
  • 更新:2025-01-16 16:22
  • 阅读:60

困扰很久的问题,小白求指点

分类:uni-app x

我只是想求data中earningsDtos这个数组每一项的money之和,感觉ts几秒钟解决的问题,在uts中困扰了几天,求指点一下,初学者不易

[⁠java.lang.ClassCastException⁠]‍ {cause: null, message: "io.dcloud.uts.UTSArray cannot be cast to io.dcloud.uts.UTSJSONObject"}


try {  
            const res = await getDividendHouseSearch_Api({  
                houseId: 0  
            })  
            if (res['code'] == 200) {  
                const resData = (res['data'] as UTSJSONObject);  
                const _earningsDtos = resData['earningsDtos'] as Array<UTSJSONObject>;  

              //  for (let i = 0; i < _earningsDtos.length; i  ) {  
              //      _allMoney  = _earningsDtos[0].money as number;  

             //   }  
                console.log("金额总计",   _earningsDtos[0]['money']) // 只要[]访问,直接报错,为什么???  

            }  
        } catch (err : any) {  
            console.error(err);  
        }
2025-01-16 14:51 负责人:无 分享
已邀请:
迈克马

迈克马 - 老年狙击手

如果是这一句的话“const resData = (res['data'] as UTSJSONObject); ”,那么提示的很清楚了啊,res['data']引用的是个数组,而不是一个UTSJSON对象。UTS中,数组不是JSON!

迈克马

迈克马 - 老年狙击手

如果是:“const _earningsDtos = resData['earningsDtos'] as Array<UTSJSONObject>;”这一句的话,也是一个道理。
resData['earningsDtos']里的每个元素,不是UTSJSONObject,而又是一个数组!

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

    怎么给二维数组设置类型,我发现earningsDtos这个是个二维数组,直接earningsDtos[0]会报错,是类型问题吧

    2025-01-16 16:43

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

    const houseData = ref<UTSJSONObject>({  
    total: 1,
    allPrice: 66, //tou zi jin e
    receiveMoney: 0,
    earningsDtos: [] as Array<UTSJSONObject>,

    });

    houseData.value.earningsDtos = resData['earningsDtos'];

    console.log('____arrs:', houseData.value.earningsDtos[0] ) //earningsDtos是二维数组,这里下标0是数组,但还是报错:error: No get method providing array access‌, 二维数组怎么用下标访问子元素呢?

    2025-01-16 16:45

  • 迈克马

    你打印下type类型,再查查UTS规范吧。我这里光靠眼看,只能说到这程度了。。。还有就是UTSArray是不是有个toArray转普通数组的方法,你都试一试。按说就是个语法问题。

    2025-01-17 10:39

要回复问题请先登录注册