HarmonyOS 鸿蒙Next promptAction.openCustomDialog builder使用自定义组件,toast封装

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

HarmonyOS 鸿蒙Next promptAction.openCustomDialog builder使用自定义组件,toast封装

@Builder
function toastBuilder(content?: string, iconDirection?: Direction, duration?: number) {
ToastBuilder({
content: content,
iconDirection: iconDirection,
duration: duration
})
}

export class Toast { static dialogId?: number = undefined;

showToast(content?: string, iconDirection?: JDDirection, duration?: number) { if (Toast.toastShowed) { return; }

promptAction.openCustomDialog({
  builder: toastBuilder(content, iconDirection, duration)
}).then((dialogId: number) => {
  Toast.dialogId = dialogId
})

}

closeToast(): void { promptAction.closeCustomDialog(JDToast.dialogId); } }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

以上代码,运行时报错

Error message:Cannot read property observeComponentCreation2 of undefined

SourceCode:

        (parent ? parent : this).observeComponentCreation2((elmtId, isInitialRender) => {

}

ToastBuilder为自定义的Compnent,其实核心是想封装一个toast的工具类,不想每次使用都自定义一个controller,求指教



关于HarmonyOS 鸿蒙Next promptAction.openCustomDialog builder使用自定义组件,toast封装的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

7 回复
toast 工具类

export default function showToast(message: string, duration: number = 2000) {
try {
promptAction.showToast({
message: message,
duration: duration,
bottom: "center",
})
} catch (error) {
console.error(`showToast args error code is ${error.code}, message is ${error.message}`);
}
}
楼主实现的难道是类似弹窗dialog 的? 提示的话还是用promptAction.showToast好一些

找HarmonyOS工作还需要会Flutter技术的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

用这个,怎么自定义UI呢?

给的代码和报错不直接相关,是 (parent ? parent : this) 无法得到有效对象导致报错,查查代码执行顺序为何会得不到预期对象。

我理解 ToastBuilder,这个获取不到parent对象,不知道上下文了。但我看promptAction.openCustomDialog,并没有让传上下文

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

这问题信息只有些碎片,没有一个整体概念不知道怎么回答你了。你封装的思路是怎样,封装涉及哪些类、组件,最终预期是什么,报错中的observeComponentCreation2() 在哪儿,没法读取你头脑中的信息,只好建议你看看API文档中示例了。 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-promptaction-V5#promptactionopencustomdialog11

回到顶部