HarmonyOS 鸿蒙Next新文件

HarmonyOS 鸿蒙Next新文件 cke_179.png

cke_554.png

我创建了个新文件叫list,也修改了**main_pages.json**配置为什么还是运行index文件的内容啊。有没有大哥帮我解决一下


更多关于HarmonyOS 鸿蒙Next新文件的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

直接将你的main_pages.json文件修改成以下,即可解决

{
  "src": [
    "pages/Index"
  ]
}

说明:页面极入口组件中,组件名需要与main_pages的路径相匹配

[【页面组件@Entry说明】](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-create-custom-components#entry)

更多关于HarmonyOS 鸿蒙Next新文件的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


开发者你好,3楼的回答是正确的。需要在入口加载逻辑里显式指定要加载的新页面(如 list),否则默认仍会加载 Index

调整入口加载页面

  • 将入口的加载逻辑从默认的 Index 改为 list
  • 如果你使用的是 Ability/页面容器的加载方法(如 loadContent),将其目标改为 pages/list
// 示例:在入口处修改要加载的页面
export default class EntryAbility {
  onWindowStageCreate(windowStage: window.WindowStage): void {
    // 关键:把这里的 'pages/Index' 改成 'pages/list'
    windowStage.loadContent('pages/list', (err) => {
      if (err) {
        console.error('loadContent failed', JSON.stringify(err));
        return;
      }
      console.info('list page loaded');
    });
  }
}

cke_149.png

打开目录下的文件,修改loadContent内容为加载list页面:

export default class EntryAbility extends UIAbility {
  onWindowStageCreate(windowStage: window.WindowStage): void {
    // Main window is created, set main page for this ability
    windowStage.loadContent('pages/**list'**, (err, data) => {    //修改处已标红,list为加载的初始页面名称
      // ...
    });
  }
}

去EntryAbility.ets文件,文件在 根目录/entry/src/main/ets/entryability/EntryAbility.ets

找这一行:

windowStage.loadContent('pages/Index', (err) => {

把这里面的这个page/Index 改成你想运行的文件名,比如:page/list

Entryability里面改一下加载页loadcontent

鸿蒙Next文件系统采用分布式软总线技术实现跨设备文件访问。支持统一文件管理接口,通过FileManager组件进行文件操作。新增安全沙箱机制隔离应用文件访问权限,采用基于URI的文件路径标识方式。提供分布式文件共享能力,支持设备间安全传输。文件存储格式优化了读写性能,集成元数据管理功能。

从截图来看,你创建了 list.ets 文件,但在 main_pages.json 中仍配置的是 "pages/Index",因此应用启动时默认加载的是 index.ets 页面。

要运行 list.ets,需要在 main_pages.json 中将第一项修改为 "pages/list",确保路径与文件名一致。修改后保存并重新运行应用即可生效。

如果问题依旧,请检查文件路径是否正确,并确认 list.ets 文件是否位于 pages 目录下。

回到顶部