HarmonyOS 页面如何传值给自定义弹窗?

如题:HarmonyOS 页面如何传值给自定义弹窗?

阅读 486
1 个回答

可通过路由跳转NavPathStack.pushPathByName传递参数

在弹窗组件的.onReady事件中获取路由跳转参数

@Component
export struct DefaultDialog {
  private dialogOptions?: AppDialogOption;
  build() {
    NavDestination() {
      ...
    }
    .onReady((ctx: NavDestinationContext) => {
      console.log("onReady")
      this.dialogOptions = ctx.pathInfo.param as AppDialogOption;
    })
  }
}

使用NavPathStack中的onPop回调来接收上一个弹窗返回的参数

onPop = (data: PopInfo) => {
  console.log("onPop")
  // 更新状态变量
  this.params[index] = JSON.stringify(data.result)
}

navPathStack.pushPathByName(CommonConstants.DEFAULT_DIALOG, this.options, this.options!.onPop!, true)

上一个弹窗在关闭时传入参数

navPathStack.popToIndex(this.stackIndex, params);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进