鸿蒙Problems:路由导航

鸿蒙 Problems:路由导航

DevEco Studio 版本:DevEco Studio NEXT Developer Preview2
HarmonyOS API 版本:4.1.0(11)

0x01 The named route is not exist.

问题描述

在想要跳转到的 Har 或者 Hsp 子模块的页面(hara 模块的 Index 页面),已经使用 @Entry({ routeName: "hara_index_page" }) 给 Index 页面自定义命名,使用

1
2
3
4
router.pushNamedRoute({
name: "hara_index_page",
params: { data: "Hello World!" },
});

进行跳转,也对 hara 模块进行了依赖。然以执行跳转的时候,还是报了 The named route is not exist.异常。

解决方案

查看文档发现,还需要在配置成功后,手动在跳转的页面中 import 被跳转页面:

1
import("@ohos/hara/src/main/ets/pages/Index"); // 引入共享包中的命名路由页面

0x02 A page configured in ‘main_pages.json’ must have one and only one ‘@Entry’ decorator.

问题描述

main_pages.json文件中申明的 Page 页面,必须有且只有一个@Entry的装饰器。

但是我检查了项目中所有main_pages.json文件配置的 Page 页面都满足要求。然后怎么清除缓存重新安装都没有用。

后来,发现项目是分层+模块化架构,其中一个 har 模块没有配置 main 入口。(一般使用 DevEco Studio 直接创建 har 模块不会有这个问题)

解决方案

在模块的oh-package.json5文件中配置main入口如下:

1
2
3
4
5
6
7
8
9
{
"name": "hara",
"version": "1.0.0",
"description": "Please describe the basic information.",
"main": "Index.ets",
"author": "",
"license": "Apache-2.0",
"dependencies": {}
}
作者

Dench

发布于

2024-05-06

更新于

2024-05-06

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×