HarmonyOS 父子组件传值问题

父组件有个变量:

@State agendaData :Agenda = new Agenda();

原本是三个文件,在后台上传一个新文件,调用接口获取之后传递给子组件:

agenda({ agendaData: this.agendaData })

子组件中接收此变量:

@Prop @Watch('agendaDataChange')  agendaData: Agenda;
// @Watch 回调
agendaDataChange(propName: string): void {
  let lines = this.getLines()
  this.isVisibility = lines > 2
  //此处回调打印的是正常数据,四个文件
  console.log('触发Watch回调',JSON.stringify(this.agendaData))
}

子组件中对于此变量的运用:

ForEach(this.agendaData.pdfList,
  (item:Profile,index)=>{
    this.fileAndVideoItem(1,item,this.agendaData.pdfList)
  })

@Builder fileAndVideoItem(type:number,file?: Profile, list?: Array<Profile>) {
  // type 1文件 2视频
  Text(file?.fileName)
    .fontSize(24)
    .fontColor('#0084FF')
    .decoration({type:TextDecorationType.Underline,color:'#0084FF'})
    .onClick(() => {
      //此处打印的list只有三个文件,this.agendaData打印出的有四个文件
      console.log('跳转页面时获取的list',JSON.stringify(list))
      console.log('跳转页面时获取的list2',JSON.stringify(this.agendaData))
      if(type===1){
        router.pushUrl({
          url: 'pages/PDFPreview',
          params:{
            file:JSON.stringify(file),
            list:JSON.stringify(this.agendaData.pdfList),
            from:'agenda'
          }
        },router.RouterMode.Single)
      }else if(type===2) {
        if(file?.fileType === "video/link") {
          const context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
          startBrows(context, file.filePath);
        } else {
          router.pushUrl({
            url: 'pages/video',
            params: {
              file: JSON.stringify(file),
              list: JSON.stringify(list),
              from: 'agenda'
            }
          })
        }
      }
    })
}
HarmonyOS
2025-01-09 13:43:25
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可使用@Link在builder构造器中监听数据变化,链接参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-link-V5

分享
微博
QQ
微信
回复
2025-01-09 16:23:25
相关问题
arkts父子组件组件怎么通信啊?
5796浏览 • 1回复 待解决
ArkTS自定义组件如何父子
935浏览 • 1回复 待解决
OpenHarmony 使用WEB组件问题
4024浏览 • 1回复 待解决
HarmonyOS 父子组件状态问题
265浏览 • 1回复 待解决
HarmonyOS Component问题
314浏览 • 2回复 待解决
HarmonyOS 页面反向怎么
456浏览 • 1回复 待解决
HarmonyOS 页面
478浏览 • 1回复 待解决
HarmonyOS 界面逆向
762浏览 • 1回复 待解决
自定义组件和绑定
1341浏览 • 1回复 待解决
HarmonyOS Checkbox如何动态
314浏览 • 1回复 待解决
HarmonyOS 父子组件滑动冲突
387浏览 • 1回复 待解决
HarmonyOS AKI是否支持引用
206浏览 • 1回复 待解决
HarmonyOS PixelMap如何实现父子组件同步
356浏览 • 1回复 待解决
HarmonyOS 如何实现页面反向
714浏览 • 1回复 待解决
HarmonyOS navigation页面之间回
390浏览 • 1回复 待解决
HarmonyOS原生如何给flutter
817浏览 • 1回复 待解决