В моем проекте Angular 9 у меня есть 2 компонента, которые являются братьями и сестрами, и parent component
. При изменении в component A
я испускаю значение, которое устанавливается в parent component
и вызывает метод в component B
. Метод в component B
выдает другое значение, и оно устанавливается в parent component
. Изменение при изменении в component A
продолжается, но испускаемое значение из component B
, установленное в parent component
(которое является входом в component A
), не изменяется. Я не знаю, почему это не вход для component A
не меняется, даже если родитель обновляет значение.
Родительский компонент
setSomeNum(someNum: number) {
// this is run on someNumberEmitter in Component A
this.num = someNum;
if (this.viewChildComponentB) {
this.viewChildComponentB.remove(someNum);
}
}
setSomeOtherNum (someOtherNum: number) {
// this is run on someDiffNumEmitter in Component B
this.otherNum = someOtherNum
}
Компонент А
componentAOnChange(someNum: number) {
this.someNumberEmitter.emit(someNum);
// this.inputFromComponentB is the original value instead of the one emitted in Component B (this.someDiffNum)
this.someService.applyCalc(someNum, this.inputFromComponentB);
}
Компонент Б
remove(someNum: number) {
this.someDiffNumEmitter.emit(this.someDiffNum);
this.someService.applyCalc(someNum, this.someDiffNum);
}
Я использую стратегию обнаружения изменений OnPush
, но ничего не изменилось. Как родственный компонент A может работать с изменениями данных из компонента B?