HarmonyOS @Entry 并不能封装到库使用

希望把页面文件封装在libs,然后在app模块中跳转过去。而关于 @Entry 和 main_pages.json 没有相关的文档支持跨库,而这个是很常见的场景

HarmonyOS
2024-08-08 19:07:32
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

可以使用router.pushNamedRoute()来实现。请参考如下demo:

//做改动的第1个文件: 
// 在想要跳转到的共享包页面里,给@Entry修饰的自定义组件命名: 
// library为新建共享包自定义的名字 
@Entry({ routeName: 'lib_page' }) 
@Component 
export struct MainPage{ 
  build() { 
    Row() { 
      Column() { 
        Text('Library Page') 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
} 
 
//做改动的第2个文件: 
// 跳转页面导入路由模块 
import { router } from '@kit.ArkUI'; 
// 引入共享包中的命名路由页面 
import ('library/src/main/ets/components/mainpage/MainPage'); 
 
@Entry 
@Component 
struct Index { 
  @State message: string = 'Hello World'; 
 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Blank(); 
        Button('Click').onClick(() => { // 点击跳转到其他共享包中的页面 
          router.pushNamedRoute({ 
            name: 'lib_page', 
            params: {} 
          }) 
        }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
} 
 
//做改动的第3个文件: 
//使用命名路由方式跳转时,需要在当前应用包的oh-package.json5文件中配置依赖 
"dependencies": { 
  "library": "file:../library" 
}
分享
微博
QQ
微信
回复
2024-08-09 10:48:12
相关问题
HarmonyOSAxios封装使用问题
474浏览 • 1回复 待解决
有没有基于socket封装成熟的网络
822浏览 • 1回复 待解决
有没有带拦截器的网络可以封装
252浏览 • 1回复 待解决
hpm下载出错,不能下载,请指点
6349浏览 • 1回复 待解决
HarmonyOS 公共组件封装
297浏览 • 1回复 待解决
HarmonyOS CustomDialogController如何封装
370浏览 • 1回复 待解决
HarmonyOS 图标使用
158浏览 • 1回复 待解决
HarmonyOS C++使用aki,编译报错
229浏览 • 1回复 待解决
xComponet示例代码不能使用
784浏览 • 1回复 待解决
HarmonyOS entry模块声明的问题
236浏览 • 1回复 待解决
HarmonyOS代码封装解决方案
437浏览 • 1回复 待解决
HarmonyOS如何使用OpenCV视觉
6921浏览 • 4回复 已解决