HarmonyOS onTitleReceived之后title并没有更新

封装的TitleLayout用在别的界面,title是可以通过state来更新的,但是跟web结合的话onTitleReceived之后title并没有更新。

HarmonyOS
2024-12-25 14:18:00
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

TitleLayout组件中的title设置为@Link就可以同步渲染了,参考示例:

@Component
export struct TitleLayout {
  @Link title: string
  private statusBarHeight: number = 0
  private titleHeight: number = 100
  @State backWidth: number = 0
  declare onBack: () => void

  aboutToAppear() {
    let tmp: number | undefined = AppStorage.get('status_bar_height_px')
    if (tmp) {
      this.statusBarHeight = Math.ceil(px2vp(tmp))
    }
  }

  build() {
    RelativeContainer() {
      Text(this.title)
        .height("100%")
        .width("100%")
        .fontSize(44)
        .fontColor(Color.Blue)
        .id('title')
        .textAlign(TextAlign.Center)
        .textOverflow({ overflow: TextOverflow.Ellipsis })
        .maxLines(1)
        .padding({ left: this.backWidth })
    }
    .width(200)
    .height(400)
  }
}
分享
微博
QQ
微信
回复
2024-12-25 15:45:09
相关问题
HarmonyOS 连续两次@Link之后UI没更新
180浏览 • 1回复 待解决
HarmonyOS 状态更新没有检测到
510浏览 • 1回复 待解决
更新完鸿蒙之后玩王者荣耀掉帧
8926浏览 • 1回复 待解决
点击FindComponentById之后没有任何反应
8038浏览 • 2回复 待解决