HarmonyOS 使用@BuilderParam 的尾随闭包时,无法获取 Provide 的值

下方代码中,不使用尾随闭包时,Bookname 组件能 consume 到 Book 组件 provide 的信息。

但换为注释中的 尾随闭包时,无法会报错:

Error message:@Component 'BookName'[9] missing @Provide property with name bookInfo.
Fail to resolve @Consume(bookInfo).
// Index.ets

@Entry
@Component
struct Index {
  @State book:BookItem = new BookItem('修养')

  @Builder bookname() {
    BookName()
  }
  build() {
    Column() {
      // 下面注释的用法会报错
      // Book({
      //   book: this.book
      // }) {
      //   this.bookname()
      // }

      Book({
        book:this.book,
        colser: this.bookname
      })
    }
  }
}
export class BookItem {
  name: string = '';
  constructor(name:string) {
    this.name = name;
  }
}

@Component
export struct BookName {
  @Consume bookInfo: BookItem;

  build() {
    Text(this.bookInfo.name)
  }
}

@Component
struct Book {
  @Prop book: BookItem;
  @Provide bookInfo: BookItem = this.book

  @Builder
  closerBuilder() {
  }

  @BuilderParam colser: () => void = this.closerBuilder

  build() {
    Column() {
      this.colser()
    }
  }
}
HarmonyOS
5天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang
分享
微博
QQ
微信
回复
5天前
相关问题
class使用方式初始化 默认丢失
2099浏览 • 1回复 待解决
如何在ArkTS中使用
860浏览 • 1回复 待解决
HarmonyOS 关于问题
229浏览 • 1回复 待解决
HarmonyOS 关于使用@BuilderParam问题
741浏览 • 1回复 待解决
HarmonyOS @BuilderParam使用问题
101浏览 • 1回复 待解决