Почему ', провайдеры: [TravelService]' в компоненте не позволяет субъекту RX JS Behavior поведения обмениваться данными между компонентами? - PullRequest
2 голосов
/ 07 января 2020
@Component({
  selector: 'app-overview-travel',
  templateUrl: './overview-travel.component.html',
  styleUrls: ['./overview-travel.component.scss'],
  providers: [TravelService]
})

Приведенный выше код не позволяет должным образом обмениваться данными из моей общей службы данных (использующей тему поведения из RX JS).

@Component({
  selector: 'app-overview-travel',
  templateUrl: './overview-travel.component.html',
  styleUrls: ['./overview-travel.component.scss']
})

Однако, когда я удаляю providers: [TravelService], Служба обмена данными работает нормально ... Я хотел бы знать, почему?

Заранее спасибо!

1 Ответ

4 голосов
/ 07 января 2020

Ваша первая версия запрещает совместное использование данных, поскольку вы предоставляете новый экземпляр TravelService для вашего компонента и его дочерних компонентов. Таким образом, каждый компонент OverviewTravel имеет свой собственный экземпляр TravelService, к которому другие компоненты не могут получить доступ.

Подробнее см. В документах .

...