HarmonyOS 鸿蒙Next api升级到beta6后,使用CustomDialogController封装的弹窗组件,调用出现问题

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

HarmonyOS 鸿蒙Next api升级到beta6后,使用CustomDialogController封装的弹窗组件,调用出现问题 调用关闭A弹窗函数,A弹窗成功关闭了,接着调用打开B弹窗函数,A弹窗再次被打开,B弹窗未打开

5 回复

参考以下demo试试

@CustomDialog
export struct DialogB {
  controllerDialog?: CustomDialogController

  build() {

    Column() {

      Text('我是B').fontColor(Color.Black)

    }.backgroundColor(Color.White).height(100).width(200)

  }
}

@CustomDialog
export struct DialogA {
  dialogB: CustomDialogController | null = new CustomDialogController({

    builder: DialogB(),

    alignment: DialogAlignment.Center,

    customStyle: true

  })
  controllerDialog?: CustomDialogController
  cancel: () => void = () => {

  }

  build() {

    Column() {

      Text('点我弹B')

        .onClick(() => {

          this.cancel()

          console.log('1')

          if (this.dialogB != null) {

            this.dialogB.open()

          }

        })

    }.backgroundColor(Color.White).height(100).width(200)

  }
}

@Entry
@Component
struct Index {
  @State message: string = '点屏幕弹A';
  dialog
  CustomDialogController = new CustomDialogController({

    builder: DialogA({

      cancel: () => {

        this.dialogA.close()

      }

    }),

    alignment: DialogAlignment.Center,

    customStyle: true

  })

  build() {

    RelativeContainer() {

      Text(this.message).fontColor(Color.White)

    }

    .height('100%')
    .width('100%')
    .backgroundColor(Color.Black)
    .onClick(() => {

      this.dialogA.open()

    })

  }
}

更多关于HarmonyOS 鸿蒙Next api升级到beta6后,使用CustomDialogController封装的弹窗组件,调用出现问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


现在最新的API版本是API14(HarmonyOS 5.0.2),升级再看看

总的来说,HarmonyOS是一款非常优秀的操作系统,期待它能在未来带给我们更多惊喜!

使用CustomDialogController封装的弹窗组件?具体代码逻辑没贴很难定位原因。

不过官网的CustomDialogController目前调用展示和关闭弹框。切换弹框是没有问题的。可以对照代码看一下:

【HarmonyOS NEXT】解决自定义弹框和键盘之间安全距离的问题_鸿蒙 arkts 底部弹框和软键盘有间隙

针对您提到的HarmonyOS鸿蒙Next API升级到beta6后,使用CustomDialogController封装的弹窗组件调用出现问题的情况,这通常可能是由于API变更或者组件兼容性问题导致。

在鸿蒙系统中,随着版本的更新,系统API可能会发生变化,这可能导致之前版本的代码在新版本中无法正常工作。对于CustomDialogController这类封装组件,如果它依赖于特定的系统API,那么这些API的变更可能会直接影响到组件的功能。

解决这类问题的一般步骤包括:

  1. 查阅官方文档:检查鸿蒙系统beta6版本的更新日志和API文档,了解是否有与CustomDialogController相关的API发生变更。

  2. 更新组件库:如果CustomDialogController是第三方库提供的,尝试查找是否有针对beta6版本的更新版本,或者联系库的维护者获取帮助。

  3. 代码调整:根据API变更情况,对使用CustomDialogController的代码进行调整,以适应新版本的系统API。

如果上述步骤无法解决问题,可能是由于更复杂的兼容性问题或系统bug导致。此时,您可以考虑联系鸿蒙系统的官方技术支持团队寻求帮助。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部