HarmonyOS鸿蒙Next中page使用export被警告,有没有更优雅的方法

HarmonyOS鸿蒙Next中page使用export被警告,有没有更优雅的方法 比如我创建PageA页面,因为PageA页面有很多模块功能,所以我想把这些功能分开A,B,C,D,代码如下:

[@Entry](/user/Entry)
@Component
export struct PageA {

// A功能

a: A= new A(this);

// B功能

b: B= new B(this);

// C功能

c: C= new C(this);
aboutToAppear() {
    a.init()
    b.init()
    c.init()
}

这样我可以分别在不同的类调用不同的初始方法,为什么PageA要用export呢?因为abc这些类需要使用到PageA的一些方法或者变量

但是这样写会被警告:

It’s not a recommended way to export struct with @Entry decorator, which may cause ACE Engine error in component preview mode.

所以我想问下,有更优雅的方法吗


更多关于HarmonyOS鸿蒙Next中page使用export被警告,有没有更优雅的方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

可以通过@Component组件方式调用

更多关于HarmonyOS鸿蒙Next中page使用export被警告,有没有更优雅的方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


最简单的就是把@Entry去掉,然后再写一个空页面作为PageA,PageA再引用这个组件。但如果想写的优雅点,最好还是把变量和方法提取出来写到一个类里面,然后再在这个页面进行引用

明白了谢谢!就是用一个组件封装来把这些ABC放进去,但是多一个空白组件会增加渲染吗

将共用的方法提取出来放到公共类中,将这部分变成函数式编程,其它需要共享的属性按需使用@StorageProp@StorageLink在不同页面间共享,

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

PageA这个页面太多逻辑方法,所以想把逻辑方法抽出来ABC类这样方便以后扩展维护。问题是@Entry和export一起用会有警告,

在HarmonyOS鸿蒙Next中,使用export导出页面组件时可能会收到警告,建议使用@Entry装饰器来标记页面的入口组件。@Entry是鸿蒙推荐的方式,用于声明页面的根组件,避免直接使用export。例如:

@Entry
@Component
struct MyPage {
  build() {
    // 页面内容
  }
}

这种方式更符合鸿蒙的设计规范,且能避免不必要的警告。

回到顶部