HarmonyOS 在业务类中非UI组件中如何引用自定义builder?

我们业务有自定义Alert,自定义alert的message是外部可传入的builder,使用代码如下:

PayAlertUtil.showTwoButtonsAlert({
  title: '温馨提示',
  customMessageBuilder: () => {
    EDCAlertMessageBuilder(param)
  },
  leftText: '取消',
  rightText: '确认支付',
  leftCallback: () => {
    LogTrace('edc_confirm_cancel', { type: 'click', clickName: 'edcAlertCancel', desc: '外卡服务费-取消' });
    param?.onCancel?.()
  },
  rightCallback: () => {
    LogTrace('edc_confirm_confirm', { type: 'click', clickName: 'edcAlertDoPay', desc: '外卡服务费-确认提交' });
    param?.onConfirm();
  }
});

其中EDCAlertMessageBuilder 在UI组件中,上午代码在业务类中

@Builder
export function  EDCAlertMessageBuilder(info:EDCDialogProps){
  EDCAlertMessage({info})
}

但是运行弹出alert会crash,crash日志如下:

Error message:Cannot read property observeComponentCreation2 of undefined
SourceCode:
  (parent ? parent : this).observeComponentCreation2((elmtId, isInitialRender, info = __info__) => {
    ^
    Stacktrace:
      at EDCAlertMessageBuilder (CTPay/CTPayBusiness/src/main/ets/components/AlertBuilder/AlertBuilder.ets:25:45)
    at customMessageBuilder (CTPay/CTPayBusiness/src/main/ets/business/bankCardBusiness.ets:1375:7)
阅读 803
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
HarmonyOS
子站问答
访问
宣传栏