HarmonyOS 鸿蒙Next builder全局构建函数 应该写在哪里 才可以让整个应用都能调取
HarmonyOS 鸿蒙Next builder全局构建函数 应该写在哪里 才可以让整个应用都能调取
builder全局构建函数 应该写在哪里 ? 才可以让整个应用都能调取 ? 怎么调取?
在前面加个export导出就行了
src/main/ets/view/MyBuilder.ets
[@Builder](/user/Builder)
export function MyGlobalBuilderFunction(){
Text('哈哈')
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
src/main/ets/pages/Page20.ets
import { MyGlobalBuilderFunction } from '../view/MyBuilder'
@Entry
@Component
struct Page20 {
build() {
Column() {
MyGlobalBuilderFunction()
}.width(100).height(100)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
@Extend只可以当前页面使用不可以导出
如果要做全局组件属性可以使用attributeModifier
src/main/ets/view/MyBuilder.ets
//导出组件
[@Builder](/user/Builder)
export function MyGlobalBuilderFunction() {
Text('哈哈')
.abc()
}
//导出组件样式,不支持export跨页面导出,仅支持当前页面使用。
@Extend(Text)
function abc() {
.fontSize(20)
.fontColor(Color.White)
.backgroundColor(Color.Blue)
}
//导出组件样式,支持export跨页面导出.
export class MyTextModifier implements AttributeModifier<TextAttribute> {
applyNormalAttribute(instance: TextAttribute): void {
instance.fontSize(20)
instance.fontColor(Color.White)
instance.backgroundColor(Color.Blue)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
src/main/ets/pages/Page27.ets
import { MyGlobalBuilderFunction, MyTextModifier } from ‘…/view/MyBuilder’
@Entry
@Component
struct Page27 {
build() {
Column() {
MyGlobalBuilderFunction()
Text(‘呵呵’).attributeModifier(new MyTextModifier())
}.width(100).height(100)
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
HarmonyOS 鸿蒙Next的全局构建函数应写在可被全局访问的位置,如全局模块或工具类中。确保该函数被正确导出,并遵循HarmonyOS的模块化和包管理机制。全局构建函数可通过import语句在整个应用中被其他组件或页面调用。
如果问题依旧没法解决,请加我微信,我的微信是itying888。这样可以提供更具体的帮助。