HarmonyOS 鸿蒙Next $r\(\)是编译时处理的,怎么用变量形式赋值?

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

HarmonyOS 鸿蒙Next $r()是编译时处理的,怎么用变量形式赋值?

2 回复
$r()是编译时处理,不支持程序运行时动态改变,运行时推荐使用resourceManager中的相关api 如getMediaBase64 获取到图片资源Base64编码,然后通过该编码进行图片加载

参考地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-resource-manager-V5#resourcemanagergetresourcemanager

在HarmonyOS鸿蒙系统中,$r\() 是一种编译时宏替换机制,它主要用于在资源文件中引用资源,如字符串、颜色等。由于这是编译时处理的,因此它不支持直接通过变量形式赋值。这意味着你不能在运行时动态地改变 $r\() 引用的资源。

如果你需要在代码中动态地引用资源或改变资源值,可以考虑以下几种方法:

  1. 使用资源ID:在代码中通过资源ID来引用资源,这样可以在运行时通过代码逻辑来决定使用哪个资源。

  2. 动态加载资源:根据需求动态加载不同的资源文件或资源包。

  3. 自定义逻辑:对于某些特定需求,可以通过自定义逻辑来实现资源引用的动态化,比如使用映射表或条件语句来选择资源。

请注意,这些方法都涉及到在代码中处理资源引用,而不是直接在资源文件中使用 $r\()

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。在那里,你可以获得更专业的技术支持和帮助。

回到顶部