想要学习更多的鸿蒙知识可以加入张恩瑞班级

链接:https://developer.huawei.com/consumer/cn/training/classDetail/2a307254409e4823bdc1cc38a7470f55?type=1?ha_source=hmosclass&ha_sourceId=89000248

@Prop——父子单项传递
父子传递装饰器    单项
当我们用之前的@State修饰符修饰的时候,遇到父组件传递的时候,我们的子组件,只能接收从父组件第一次创建的时候,渲染的数据,当数据更改的时候,不会从新渲染
如果我们想要使用父传子的时候,就可以使用这个修饰符
使用方法
首先,我们先再我们的父组件,定义一个用@State修饰的参数
然后,再子组件也定义一个用@Prop修饰的参数,
然后,再父组件调用子组件的时候,把参数传过去
这样当父组件变化是时候,子组件也会发生变化
示例代码如下

@Entry
@Component
struct PropCase {
  @State
  num:number = 0
  build() {
    Column({space:20}){
      Text('父组件: '+this.num)
        .onClick(()=>{
          this.num++
        })
      PropChild({pnum:this.num})
    }
    .justifyContent(FlexAlign.Center)
    .width('100%')
    .height('100%')
  }
}
@Component
struct PropChild {
  @Prop
  pnum:number = 0
  build() {
    Column(){
      Divider()
        .width(4)
      Text('子组件: '+this.pnum)
        .onClick(()=>{
          this.pnum ++
        })
    }
    .width('100%')
  }
}


 

注意,这个只能父组件去改子组件,但是呢,子组件,是不能去改父组件的
当我们再子组件对数据进行变化的时候,它只会把子组件里面的内容进行修改,但是父组件是不变的,当父组件进行修改的时候,子组件就会从新去进行该变
并且这个可以支持无限传递,子组件传子组件,然后再传子组件
想要了解更多鸿蒙相关的知识,请加入班级进行学习,班级连接如下
张恩瑞班级链接:https://developer.huawei.com/consumer/cn/training/classDetail/2a307254409e4823bdc1cc38a7470f55?type=1?ha_source=hmosclass&ha_sourceId=89000248

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐