Nativescript - ChangeDetectorRef 在我的组件中不存在
Nativescript - ChangeDetectorRef does not exist in my component
我尝试自动更新列表视图中使用的数组。为此,我像这样使用 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();
}
但是,我得到这个错误:
error TS2339: Property 'cdr' does not exist on type 'RegisterComponent'.
谁能解释一下我误解了什么?
在您的构造函数中,您只是接受一个参数。如果您希望这是一个简写 属性 定义,您必须主动提供可见性。
constructor(public cdr: ChangeDetectorRef){}
constructor(protected cdr: ChangeDetectorRef){}
constructor(private cdr: ChangeDetectorRef){}
否则,cdr
仅在构造函数本身内可用。
在添加 public / private 等访问器之前,它是构造函数中的局部变量。
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();
}
我尝试自动更新列表视图中使用的数组。为此,我像这样使用 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();
}
但是,我得到这个错误:
error TS2339: Property 'cdr' does not exist on type 'RegisterComponent'.
谁能解释一下我误解了什么?
在您的构造函数中,您只是接受一个参数。如果您希望这是一个简写 属性 定义,您必须主动提供可见性。
constructor(public cdr: ChangeDetectorRef){}
constructor(protected cdr: ChangeDetectorRef){}
constructor(private cdr: ChangeDetectorRef){}
否则,cdr
仅在构造函数本身内可用。
在添加 public / private 等访问器之前,它是构造函数中的局部变量。
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();
}