注入的页面为空
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
/ Page
。 Page
只能注入到 page-router-outlet
.
中加载的组件中
如果上面的 TLDR link,我的快速解决方法是替换:
<router-outlet></router-outlet>
与 <page-router-outlet></page-router-outlet>
在app.component.html
将代码移动到 ngOnInit
为我解决了这个问题
将 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
/ Page
。 Page
只能注入到 page-router-outlet
.
如果上面的 TLDR link,我的快速解决方法是替换:
<router-outlet></router-outlet>
与 <page-router-outlet></page-router-outlet>
在app.component.html
将代码移动到 ngOnInit
为我解决了这个问题