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
相关问题
readonly修饰的数组无法获取数组元素
144浏览 • 1回复 待解决
ForEach在真机上无法执行
304浏览 • 1回复 待解决
ArkTS和Native互传数组类型数据
148浏览 • 1回复 待解决
手机如何与电脑端进行数据传输
1492浏览 • 1回复 待解决
如何跳出ForEach,有人知道吗?
350浏览 • 1回复 待解决
http请求如何以JSON形式进行传输
443浏览 • 1回复 待解决
http请求如何以表单形式进行传输
592浏览 • 1回复 待解决
class二次刷新渲染数组
35浏览 • 0回复 待解决
如何监听数组内对象属性变化
563浏览 • 1回复 待解决
关系数据无法拷贝怎么回事?
522浏览 • 1回复 待解决
ArkTS如何把string转为byte数组
746浏览 • 1回复 待解决