Введенная страница - нулевая

После обновления проекта angular nativescript до текущих версий angular, typescript, tns и т. Д. Я получаю сообщение об ошибке выполнения:

TypeError: невозможно установить для свойства actionBarHidden значение null в новом компоненте приложения ...

Код, который ранее работал, чтобы скрыть панель действий, выглядит следующим образом:

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

export class AppComponent implements OnInit, AfterViewInit {

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

Почему после инъекции страница становится пустой?


person apricity    schedule 30.10.2018    source источник


Ответы (3)


В более ранних версиях корнем всегда был Frame, поэтому по умолчанию будет Page.

Но в последней версии вы можете определять гибкие корневые компоненты и любое количество фреймов (page-router-outlet) в вашем приложении. Таким образом, в компоненте приложения не будет создаваться Frame / Page по умолчанию. Page можно вводить только в те компоненты, которые загружены внутри page-router-outlet.

person Manoj    schedule 30.10.2018
comment
Отлично, здесь есть дополнительная информация в разделе «Гибкая корневая композиция Angular»: nativescript. org / blog / announcing-the-nativescript-4.1-release Я просто закомментировал все свои инъекции страниц и actionBarHidden = true, и, похоже, все в порядке. Теперь я исправил аналогичную проблему с установкой атрибутов на внедренной странице внутри модальных окон, но похоже, что эта ссылка также входит в это. - person apricity; 02.11.2018

Если TL; DR - ссылка выше, быстрое решение для меня заключалось в замене:

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

в app.component.html

person Frank    schedule 21.12.2018

Перемещение кода на ngOnInit решило эту проблему за меня

person user2203229    schedule 03.05.2020