Skip to content

页面卡槽和组件卡槽联合使用

注意

  1. 改变 this 指针

使用场景

  • A 页面想通过页面卡槽把数据传递给组件

实现方法

  • A 页面
ts

import Slot from '../components/Slot'

@Entry
@Component
struct Index3 {
    @State message: string = "这就是从父元素传递过来的"

    @Builder
    slotAll() {
        Text(this.message).fontSize(23).fontColor(Color.Red).onClick(() => {
            this.message = "改变了结果"
        })
    }

    build() {
        Column() {
            Slot({ slot: this.slotAll.bind(this) })
        }
    }
}
  • Slot 组件
ts

@Component
export default struct Slot {
    @BuilderParam
    slot: () => void = this.slotContent

    @Builder
    slotContent() {
        Text("默认").fontSize(26).fontColor(Color.Green)
    }

    build() {
        Column() {
            this.slot()
        }
    }
}