Я учусь использовать стратегию обнаружения onPu sh. Мое представление обновляется нормально, но переменные в моих значениях child.component.ts - нет, но они имеют значение для child.component. html
РЕБЕНОК КОМПОНЕНТ
@Component({
....
changeDetection: ChangeDetectionStrategy.OnPush
})
export class BdayFormComponent implements OnInit {
@Input() question: Question;
@Output() nextQuestion = new EventEmitter<Question>();
nextQuestions(): void {
...
this.nextQuestion.emit(......)
console.log(this.question);
}
}
Как видите, nextQuestion
, говорит родительскому компоненту отправлять действие для получения нового вопроса. Я вижу следующий вопрос на моем HTML (скажем, вопрос № 2), но когда я делаю console.log(this.questions);
, он печатает вопрос № 1.
РОДИТЕЛЬСКИЙ КОМПОНЕНТ
export class BdayShellComponent implements OnInit {
question$: Observable<Question>;
constructor(private store: Store<fromProduct.State>) { }
ngOnInit(): void {
this.question$ = this.store.pipe(select(fromProduct.getCurrentQuestion));
}
setCurrentQuestion(question: Question): void {
this.store.dispatch(new bdayActions.SetCurrentQuestion(question));
}
}
РОДИТЕЛЬСКИЙ КОМПОНЕНТ HTML
<app-bday-form [question]="question$ | async"
(nextQuestion)="setCurrentQuestion($event)"></app-bday-form>