HarmonyOS 有没有一个弹窗,可以在当前页面弹n次,不与上下文相关?

我需要做一个收到socket,就弹出红包的领取页面,是一个Dialog

理论上弹窗可以无限次弹出来。

1.使用CustomDialog的话,需要绑定dialogController无数次,这样太不符合逻辑了。

2.使用subWindow的话,弹出了一个后,后面的就不会弹出来了。

3.使用promptAction的话,也是弹出了一个后,后面的就不弹出来了。

请问还有其他的方式么。

另外需要在A页面弹出红包弹窗B后,然后点击跳转到C(使用的是 router.pushNamedRoute)。在C也能弹出,接受socket的代码可以只写在A,C也能响应么

阅读 515
1 个回答

可以考虑使用Stack组件来创建弹窗,然后控制显示与隐藏。

Stack() {
  Button('继续跳转下一页面').onClick(()=>{
    this.dialogShow = Visibility.Visible
  })
  Text('我是弹窗').width(200).height(200).backgroundColor(Color.Red).fontColor(Color.White).align(Alignment.Center).visibility(this.dialogShow).onClick(()=>{
    this.dialogShow = Visibility.Hidden
  })
}.width('100%').height('100%')