Как исправить @ViewChild ElementRef неопределенный в NativeScript Angular?

Я занимаюсь разработкой мобильного приложения с помощью NativeScript (CLI v5.2.0) Angular (v7.2.3), и у меня есть @ViewChild ElementRef, который не был определен.

Я проверил наличие ViewChild и ElementRef в импорте "@angular/core", переименовал мою переменную @ViewChild, изменил область видимости с общедоступной на частную, переместил console.log() в ngAfterViewInit (см.: https://github.com/NativeScript/nativescript-angular/issues/188) и перестроил мой проект с помощью "tns debug android --clean --bundle".

component-name.component.ts:

@ViewChild("test") private _scrollView: ElementRef;

constructor(page: Page) {

    page.actionBarHidden = true;

}

ngAfterViewInit() {

    console.log("ScrollView element:", this._scrollView.nativeElement);

}

...

component-name.component.html:

<GridLayout columns="*" rows="*, auto">

    <ScrollView (swipe)="onSwipe($event)" col="0" row="0" #test>
        <StackLayout>

...

Если я поставлю #test в начале, сразу после элемента ScrollView, у меня будет переменная this._scollView, которая не определена.

Если я поставлю #test в конце, как в примере выше, все работает, и я покажу свой элемент в console.log(this._scrollView.nativeElement)!

Жук?

1 ответ

Предыдущий код:

      import { ElementRef } from "@angular/core";

@ViewChild("myElement") myElement: ElementRef;

Перенесенный код:

      import { ElementRef } from "@angular/core";

@ViewChild("myElement", { static: false }) myElement: ElementRef;

{static: false} means nfAfterInit,
{static: true} mean ngInit

это работает для меня.

Другие вопросы по тегам