У меня одна ситуация, и я не уверен, что происходит, поэтому в основном у меня есть два компонента: родительский и дочерний, и моя структура выглядит следующим образом:
в родительском компоненте у меня есть некоторые данные, которые отображаютсяна странице, и я получаю эти данные, когда страница инициализируется, вызывая метод getPersonData () -> это возвращает данные о человеке из API.
Также в родительском компоненте html у меня есть дочерний компонент, где мне также нужна функциональность для обновления данных вродительский компонент (и чтобы увидеть потенциальные изменения, отраженные в HTML), то, что я здесь сделал, я передал как функцию @Input param из родительского компонента и вызвал ее из дочернего компонента, когда я хотел обновить страницу.
метод родительского компонента:
getPersonData() {
this.personService.getPersonData(id).then((data) => {
this.personData = data;
console.log(this.personData)
});
}
компонент parrent html:
<div>
{{person.firstName}} {{person.lastName}}
<child-component [getPersonData]="getPersonData" ></child-component>
</div>
А в дочернем компоненте у меня есть что-то вроде этого:
@Input() getPersonData: () => void;
savePerson() {
this.personService.savePersonData(personId, this.personPayload).subscribe(
() => {
this.getPersonData();
});
}
И теперь происходит странная вещь: во вкладке «Журнал консоли» и «Сеть» я вижу, что API CALL выполнен, и я вижу изменения там, но мой HTML остается со старыми данными, это то, что я не понимаю, данные журнала консоли не похожиHTML-данные, консольный журнал и все в родительском компоненте.Может ли кто-нибудь помочь мне понять, что здесь происходит, что мне не хватает?Основная причина, по которой html не обновляется, похоже, что personData, вызываемый из родительского компонента, отличается от parentData, который вызывается с помощью функции обратного вызова из дочернего компонента ...