@Input 속성이 각도 2의 onInit에서 정의되지 않습니다.
생성자 또는 ngOnInit에서 구성 요소의 @Input 값을 가져 오려고합니다. 그러나 그것은 항상 "정의되지 않은"것으로오고있다.
문제를 표시하기 위해 console.log로 hero plunker를 업데이트했습니다 (베타 각도). http://plnkr.co/edit/dseNM7OTFi1VNG2Z4Oj5?p=preview
export class HeroDetailComponent implements OnInit {
constructor(){
console.log('hero', this.hero)
}
public hero: Hero;
ngOnInit() {
console.log('hero', this.hero)
}
}
내가 여기서 뭘 잘못하고 있니?
되지 않은 이유 정의 ngOnInit
는 구성 요소가 초기화 된 지점에서 실제로 Hero
object-를 전달하지 않았기 때문입니다.
<my-hero-detail [hero]="selectedHero"></my-hero-detail>
이 시점 selectedHero
에서 귀하의 가치가 평가 AppComponent
목록의 클릭 이벤트가 onSelect
메소드를 호출 할 때까지
편집 : 내가 실제로 수정을 제공하지 않았다는 것을 깨달았습니다. 당신은을 추가하는 경우 ngIf
에my-hero-detail
<my-hero-detail *ngIf="selectedHero" [hero]="selectedHero"></my-hero-detail>
이렇게하면 my-hero-detail
구성 요소 의 초기화가 지연 되고 콘솔 출력이 표시됩니다. 이 습관은 출력 할 때 다시 선택한 영웅이 변경됩니다.
이것은 처음으로 발생하는 오류입니다. 그러나 선택이 지정하신 Hero는 정의 된 값과 함께 세부 정보보기로 전달됩니다.
기본적으로 원래 값 (정의되지 않음)을 기반으로 onInit 호출이 표시됩니다.
다음과 같이 선택할 수 있습니다.
export class HeroDetailComponent implements AfterViewChecked {
constructor(){
console.log('hero', this.hero)
}
public hero: Hero;
ngAfterViewChecked() {
console.log('hero', this.hero)
}
}
에서 입력 속성 값을 정의하지 않을 때 갑자기 동작이 발생했습니다 ngOnInit
. *ngIf="selectedHero"
HTML 코드 의 광고는 나를 만족 스럽습니다. 또한, 사용 AfterViewChecked
에서 THG의 대답 @ 대답 주기적으로 호출하고 경고가 발생하기 때문에, 나를 위해 좋은 해결이 아니었다 ExpressionChangedAfterItHasBeenCheckedError
나는 ( 내가 사용 문제를 해결하지 않았고 어떤 변수를 변경하고자 setTimeout
합니다.) 이것이 문제에 대한 나의 해결책입니다.
export class MyComponent implements OnChanges {
@Input() myVariable: any;
ngOnChanges(changes: SimpleChanges) {
if (changes['myVariable']) {
let variableChange = changes['myVariable'];
//do something with variableChange.currentValue
}
}
}
나중에 누군가에게 도움이되기를 바랍니다.
ngOninit 메서드 사용에서
ngOnInit() {
if(this.hero)
console.log('hero', this.hero);
}
참고 URL : https://stackoverflow.com/questions/34396684/input-property-is-undefined-in-angular-2s-oninit
'ProgramingTip' 카테고리의 다른 글
Java 메서드가 모든 유형의 일반 목록을 반환하는 방법은 무엇입니까? (0) | 2020.12.03 |
---|---|
Sublime Text 3에서 Solarized (Light) 테마를 어떻게 편집합니까? (0) | 2020.12.03 |
Log4Net 구성 로그 수준 (0) | 2020.12.03 |
현재 셀에 대한 Excel 참조 (0) | 2020.12.03 |
Visual Studio 프로젝트에서 코드를 북마크하는 방법이 있습니까? (0) | 2020.12.03 |