为什么组件中的', providers: [TravelService] '会阻止 RXJS 行为主体跨组件共享数据?


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

上面的代码阻止了我的共享数据服务(使用 RXJS 中的行为主体(中的数据无法正确共享。

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

但是,当我删除providers: [TravelService]时,数据共享服务工作正常。我很想知道为什么?

提前感谢!

您的第一个版本会阻止数据共享,因为您要为组件及其子组件提供TravelService的新实例。所以每个OverviewTravel组件都有自己的TravelService实例,其他组件无法访问。

有关更多详细信息,请参阅文档。