ngOnInit() {
this.store.pipe(select(empReducer.getErrorStatus)).subscribe(err => this.Error = err);
this.store.pipe(select(empReducer.getEmpInfo)).subscribe(res=> console.log('test'));
}控制台调用不止一次为什么?
发布于 2020-01-07 21:00:51
我只看到两种可能性:
empReducer.getEmpInfo不止一次发出。unsubscribe(),还是使用takeUntil模式)。如果组件被创建、销毁、再创建(例如,用户转到另一个视图并再次返回),您将拥有两个或更多活动subscriptions.发布于 2020-01-07 21:30:41
正如之前建议的那样,检查响应以查看您订阅的内容。对于订阅,您可以使用此模式来确保在组件被销毁时取消订阅所有订阅。希望这能有所帮助。
private _subscriptions: Subscription = new Subscription();
public ngOnInit():void {
this._subscriptions.add(
this.store.pipe(select(empReducer.getErrorStatus)).subscribe(err => this.Error = err)
)
);
this._subscriptions.add(
this.store.pipe(select(empReducer.getEmpInfo)).subscribe(res => console.log('test')
)
);
}
public ngOnDestroy(): void {
this._subscriptions.unsubscribe();
}https://stackoverflow.com/questions/59628868
复制相似问题