Я написал сервис, который улавливает значение одного компонента, чтобы другой компонент мог получить это значение мгновенно.Предположим, что в component1 я отправляю значение «episodes» в виде строки (contentType), в DataService он печатает = console.log (contentType) // episodes
, если во второй раз я снова отправляю значение «songs» в виде строки из component1он печатает // песни в DataService, но не устанавливает значение для песен в поведениеSubject
в третий раз при передаче другого параметра, оно изменяется на песни и не соответствует последнему значению
Не принимаеттекущее значение, всегда предыдущее значение.В чем ошибка?
Компонент1 имеет следующий код
contentType : string = "abc"
this.ds.checkValue(contentType);
Компонент2 имеет следующий код:
ngOnInit() {
this.ds.contentTypeValue.subscribe(receivedType=> this.receivedType =
receivedType)
};
Класс обслуживания
export class DataService {
private contentTypeBs =new BehaviorSubject<string>(null);
contentTypeValue = this.contentTypeBs.asObservable();
public checkValue(contentType: string) {
console.log(contentType);
this.contentTypeBs.next(contentType);
}
constructor() { }
}
[1]: https://i.stack.imgur.com/Qp4F8.jpg
[2]: https://i.stack.imgur.com/VnZBh.jpg