дочерний компонент не обновляется при обновлении входной переменной - Angular - PullRequest
0 голосов
/ 20 марта 2020

У меня есть дочерний компонент, и в этом я передаю в качестве входных данных значение из родительского компонента. В родительском компоненте я обновляю эту входную переменную по триггеру emmiter, но дочерний компонент не обновляется. Я проверил в августе обновления входной переменной. Почему дочерний компонент не обновляется?

ParentComponent. html

<app-child
[data]="data"
(filterEmmiter)="filter($event)">
</app-child>

ParentComponent.ts

data: any;
.
.
.
getUsers() {
  this.usersService.getAllUsers().subscribe(res => {
    this.data = res;
  });
}
.
.
.

filter(data){
  this.data = data
}

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

вы можете попробовать вот так: здесь вы хотите получить данные от родительского компонента к дочернему компоненту, здесь ваш родительский компонент ParentComponent, а дочерний компонент app-child, поэтому здесь для получения данных от родителя к дочернему можно использовать ngOnChanges(changes: SimpleChanges)

ParentComponent. html

<app-child
[data]="data"
(filterEmmiter)="filter($event)">
</app-child>

child.component.ts


import {Component, OnChanges, SimpleChanges, Input} from '@angular/core';

class Child  implements OnInit, OnChanges {

    @Input() Data: any; // here is the data variable which we are getting from the parent 

    constructor() {}

    ngOnchanges(changes: SimpleChanges) {
      console.log(changes); // here you will get the data from parent once the input param is change
    }   

}

0 голосов
/ 20 марта 2020

Ваши дочерние компоненты должны выставлять Eventemmiter

 @Output() filteremmiter = new EventEmitter<any>();
...