我们业务有自定义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)
可参考一下wrapBuilder:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-wrapbuilder-0000001820879577-V5