HarmonyOS开发中,有没有办法让一个@Link双向绑定的变量,同时支持不与父组件绑定,而是手动赋值的?

想问一下,有一个公用的Component,可能用在多种父组件下,但是其中有个变量有时需要跟父组件双向绑定,有时不需要,而是组件内部自己赋值。目前@Prop支持通过默认值达到这种灵活的目的,但是这样就只能单向绑定了,@Link能否也支持这样?或者有没有替代方案?

阅读 606
1 个回答

你可参考如下demo:

@Entry 
@Component 
struct PageOne { 
  @State message: string = 'Hello WorldPageOne'; 
  @State nums:number = 0; 
  @State aa:string = 'sasadefr'; 
 
  aboutToAppear(): void { 
  } 
 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Child({aa:this.aa,nums:this.nums}) 
        Button('同步') 
          .onClick(()=>{ 
            this.nums++ 
            this.aa+='1'; 
          }) 
        Button('不同步') 
          .onClick(()=>{ 
            this.aa+='1'; 
          }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
} 
 
@Component 
struct Child{ 
  @Link aa:string 
  @State aa1:string = 'sasa'; 
  @Link@Watch('onChage') nums:number; 
 
  onChage(){ 
    console.log('要同步') 
    this.aa1=this.aa 
  } 
 
  build() { 
    Column(){ 
      Text(this.aa1) 
        .fontSize(50) 
        .fontWeight(FontWeight.Bold) 
    } 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题