注入的页面为空

Injected Page is null

将 angular nativescript 项目升级到 angular、typescript、tns 等的当前版本后。我收到一个运行时错误:

TypeError: Cannot set property 'actionBarHidden' of null at new AppComponent...

之前用于隐藏操作栏的代码如下所示:

import {Page} from "tns-core-modules/ui/page";

export class AppComponent implements OnInit, AfterViewInit {

    constructor(page: Page) {
        page.actionBarHidden = true;
    }
}

为什么注入后页面为空?

在早期版本中,根始终是 Frame,因此默认情况下会有 Page

但在最新版本中,您可以在应用中定义灵活的根组件和任意数量的框架 (page-router-outlet)。因此不会在应用程序组件中创建默认的 Frame / PagePage 只能注入到 page-router-outlet.

中加载的组件中

如果上面的 TLDR link,我的快速解决方法是替换:

<router-outlet></router-outlet><page-router-outlet></page-router-outlet>

在app.component.html

将代码移动到 ngOnInit 为我解决了这个问题