Использование void
Подлежит ли сигналу о том, что что-то произошло, хорошая практика?
Мне любопытно, есть ли лучший способ сообщить о каком-либо событии и нужно ли мне реструктурировать свой код.
Более полный пример этого:
Таможенное обслуживание
public data: Subject<Data> = new Subject<Data>();
public save: Subject<void> = new Subject<void>();
Компонент A
public data: Data[] = [];
public ngOnInit(): void {
this.data = someApiCall;
}
public saveData(): void {
this.myService.save.next();
// do something with data after it being updated
}
private updateData(): void {
this.myService.data.subscribe(data => {
this.data = data;
});
}
Компонент B
@Input()
public data: Data[] = [];
public ngOnInit(): void {
this.onSave();
}
private onSave(): void {
this.myService.save.subscribe(() => {
this.myService.data.next(this.data);
});
}
Компонент B имеет значение Input
из данных, которые поступают из ngOnInit
в Компоненте A.
Когда кнопка Save
нажата в Компоненте A, Компонент B прослушивает событие и передает данные, полученные от его ввода обратно в Компонент A. Затем Компонент A получает данные через updateData()
и устанавливает их там. .
В этом случае я использую только Subject
, чтобы указать, что Save
произошло, но я не передаю никаких данных.
Мысли