HarmonyOS 组件如何接受和处理联合类型的数据?

需求背景描述:

我有一个需求,写了一个自定义的Banner, 项目中有两个地方用到了这个Banner,但是两个地方用到的接口返回数据是不一致的,也就是BannerInfo 和 RightTop作为一个公共组件,可以从在传入数据的时候将两个地方传入一致(进行数据转换),但是如果不想这样的话,我写了一个联合类型, @Link info: Array<BannerInfo> | Array<RightTop> 但是在渲染组件的时候,会报错。

LazyForEach(this.data, (item: BannerInfo | RightTop) => {  
  Image(这里应该怎么写?)  
}

我改如何解决这个问题呢?

HarmonyOS
2024-10-24 13:26:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

联合类型数据渲染组件的时候,您可以加一个判断,看他是属于哪一种类型后再进行渲染,参考代码如下:

LazyForEach(this.data, (item: BannerInfo | RightTop) => {  
  if( item instanceof BannerInfo ){  
    Image(item.bannerName)  
      .height(this.bannerHeight)  
      .width('100%')  
      .clip(true)  
      .borderRadius(this.radius)  
  }else if(item instanceof RightTop){  
    Image(item.appletRedirectUrl)  
      .height(this.bannerHeight)  
      .width('100%')  
      .clip(true)  
      .borderRadius(this.radius)  
  }  
}
分享
微博
QQ
微信
回复
2024-10-24 15:13:33
相关问题
求大佬告知如何实现联合类型
611浏览 • 1回复 待解决
HarmonyOS 接受接口返回json数据
20浏览 • 0回复 待解决
上传文件后,如何接受后端返回数据
1840浏览 • 1回复 待解决
mysql数据类型使用int类型string类型
2546浏览 • 1回复 待解决
ArkTSNative互传数组类型数据
1178浏览 • 1回复 待解决
HarmonyOS 接受不到推送消息
132浏览 • 1回复 待解决
HarmonyOS 组件类型用什么表示?
184浏览 • 1回复 待解决