HarmonyOS Map类型调用get获取不到值

@State tableBody: Map<string, object>[]  = []
Logger.info("tableBody:" + JSON.stringify(this.tableBody[0]))
//{"instructId":"222","portfolioId":"22","hsCode":"12"} 打印结果

Logger.info(TAG, "tableBody2:" + this.tableBody[0].get('instructId'))
//代码这一句,不执行,没有任何打印

this.tableBody[0].size() //执行结果是0

this.tableBody[0]['instructId'] //这句话可以执行 结果是222

//为啥我执行this.tableBody[0].get('instructId'),会报错 is not callable
HarmonyOS
3天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

this.tableBody[0]非Map类型,所以不能使用map的方法,可以使用instanceOf判断一下this.tableBody[0]是否为map类型

可以参考下述demo修改代码:

import { HashMap } from '@kit.ArkTS';
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  @State tableBody: Map<string, object>[] = [];

  aboutToAppear(): void {
    let body: Map<string, object> = new Map<string, object>();
    body.set('instructId', new String('222'))
    body.set('portfolioId', new String('22'))
    body.set('hsCode', new String('12'))
    this.tableBody.push(body)
    console.info("tableBody:" + this.mapToString(this.tableBody[0]));
    console.info("tableBody2:" + this.tableBody[0].get('instructId'));
  }

  mapToString(map: Map<string, string | object>): string {
    if (map.size === 0) {
      return '';
    }

    let obj: object = new Object;
    map.forEach((value, key) => {
      if (value instanceof Map) {
        obj[key] = this.mapToString(value);
      }else {
        obj[key] = value;
      }
    })
    return JSON.stringify(obj);
  }

  build() {
    RelativeContainer() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}
分享
微博
QQ
微信
回复
3天前
相关问题
Preferences获取不到
9044浏览 • 2回复 待解决
HarmonyOS Map类型
52浏览 • 1回复 待解决
HarmonyOS http get请求不到内容
55浏览 • 1回复 待解决
HarmonyOS Record HashMap map类型选择
1276浏览 • 2回复 待解决
HarmonyOS json对象转map类型
189浏览 • 1回复 待解决
HarmonyOS router参数不能是map类型
319浏览 • 1回复 待解决
router.pushUrl 无法使用Map类型参数
518浏览 • 1回复 待解决
Map类型怎么转换成Json string
2272浏览 • 1回复 待解决
HarmonyOS getContext()获取不到
154浏览 • 1回复 待解决
router.pushUrl是否无法使用Map类型参数
787浏览 • 1回复 待解决
获取token失败,报错信息 get token fail
852浏览 • 1回复 待解决
HarmonyOS router获取不到参数
43浏览 • 1回复 待解决