首页 > 解决方案 > Nativescript - 我的组件中不存在 ChangeDetectorRef

问题描述

我尝试自动更新 Listview 中使用的数组。为此,我像这样使用 ChangeDetectorRef :

import { Component, OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef } from "@angular/core";

@Component({
    selector: "register",
    templateUrl: "./register.html",
    styleUrls: ["./register.css"],
    changeDetection: ChangeDetectionStrategy.OnPush
})

export class RegisterComponent implements OnInit {

@Input regis = Array<string>;

constructor(cdr: ChangeDetectorRef){}

ngAfterContentChecked() {
    this.cdr.detectChanges();
}

但是,我收到此错误:

错误 TS2339:“RegisterComponent”类型上不存在属性“cdr”。

有人可以解释一下我误解了什么吗?

标签: angulartypescriptnativescriptangular2-changedetection

解决方案


它是构造函数中的局部变量,直到您添加公共/私有之类的访问器。

import { Component, OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef } from "@angular/core";

@Component({
    selector: "register",
    templateUrl: "./register.html",
    styleUrls: ["./register.css"],
    changeDetection: ChangeDetectionStrategy.OnPush
})

export class RegisterComponent implements OnInit {

@Input regis = Array<string>;

constructor(private cdr: ChangeDetectorRef){}

ngAfterContentChecked() {
    this.cdr.detectChanges();
}

推荐阅读