ForEach数组数据无法传输

 

@Component
struct test {
  private image_obj: image_Date_obj
  build(){
    Scroll(){
      Image(this.image_obj.image_url)
      Text(this.image_obj.image_name)
    }
  }
}

@Entry
@Component
struct test2 {
  private image_objs: image_Date_obj[] = init_Image_Data()
  build(){
    Scroll(){
      ForEach(this.image_objs, (item:image_Date_obj) => {
        test({ image_obj: item})
      }, )
//      Image(this.image_objs[1].image_url)
    }
  }
}

ForEach无法传输,注释代码Image单独使用有数据。传入test怎么都不行。  大佬们,我的问题在哪,谢谢了。

均为eTs代码,下面是数据文件eTs文件中的代码

 

export class image_Date_obj {
  image_url : Resource;
  image_name : string;

  constructor(image_url:Resource,image_name:string){
    this.image_url = image_url;
    this.image_name = image_name;
  }
}

let image_Date: any[] = [
  {'image_url': $r('app.media.Diany1'),'image_name':'非常人贩'},
  {'image_url': $r('app.media.Diany2'),'image_name':'人之怒'},
  {'image_url': $r('app.media.Diany3'),'image_name':'抓鬼敢死队'},
  {'image_url': $r('app.media.Diany4'),'image_name':'机械师'},
  {'image_url': $r('app.media.Diany5'),'image_name':'机械师第一季'},
  {'image_url': $r('app.media.Diany6'),'image_name':'机械师2:复活'}
]

export function init_Image_Data(): Array<image_Date_obj> {
  let image_Date_Arry: Array<image_Date_obj> = []
  image_Date.forEach(item => {
    image_Date_Arry.push(new image_Date_obj(item.image_url, item.image_name ));
  })
  return image_Date_Arry;
}

ForEach数组数据无法传输-鸿蒙开发者社区

ForEach循环
2021-12-22 12:23:57
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
qq61c180282de2c
@Component
struct test {
  private DianYing_Images: image_Date_obj
  build(){
    Column(){
      Image(this.DianYing_Images.image_url)
      Text(this.DianYing_Images.image_name)
    }
  }
}

@Entry
@Component
struct test2 {
  private DianYing_Image: image_Date_obj[] = init_Image_Data()
  build(){
    Scroll(){
      Grid(){
        ForEach(this.DianYing_Image, (item: image_Date_obj) => {
          GridItem(){
            test({ DianYing_Images: item})
          }
        }, )
      }
      .rowsTemplate("1fr 1fr 1fr 1fr")
      .columnsTemplate("1fr 1fr")
      .columnsGap(8)
      .rowsGap(8)
      .backgroundColor(0xFAEEE0)
      .height('100%')
      .width('100%')
    }
  }
}

 

已解决:但不清楚问题具体出现在哪(看着官方文档瞎搞出来的),修改了几处。

1、test组件中的Scroll组件更换为Column。

2、test2入口中Scroll组件下添加了Grid和GridItem,实验了下: .rowsTemplate("1fr 1fr 1fr 1fr")
.columnsTemplate("1fr 1fr")这两个属性如果不写就预览还会是白屏

原因是组件与组件的嵌套使用不熟悉,组件与组件之间的配合,比如高宽设置等

 

分享
微博
QQ
微信
回复
2021-12-22 15:27:40
相关问题
ForEach数组发生改变。UI没刷新
612浏览 • 1回复 待解决
ForEach无法遍历全部数据,是什么原因
1989浏览 • 1回复 待解决
HarmonyOS emitter传输数据问题
106浏览 • 1回复 待解决
ForEach在真机上无法执行
1907浏览 • 1回复 待解决
readonly修饰的数组无法获取数组元素
2060浏览 • 1回复 待解决
HarmonyOS 视频流数据传输
466浏览 • 1回复 待解决
HarmonyOS taskpool数据传输问题
507浏览 • 1回复 待解决
HarmonyOS 数组对象数据刷新
30浏览 • 1回复 待解决
修改ForEach使用的数据对象,UI不刷新
1875浏览 • 1回复 待解决
ArkTS和Native互传数组类型数据
1431浏览 • 1回复 待解决
标准化数据通路UDMF传输限制问题
323浏览 • 1回复 待解决
数组列表如何实现数据的双向同步?
381浏览 • 1回复 待解决
手机如何与电脑端进行数据传输
3358浏览 • 1回复 待解决