角度6-可观察的unsubscribe()不会重置值

时间:2019-01-22 10:20:23

标签: angular6

我正在通过服务在两个组件之间共享数据。

示例:

  1. 服务等级

    private searchValue = new BehaviorSubject(undefined);  
    currentSearchValue = this.searchValue.asObservable();
    
    changeSearchValue(value: any) {
        this.searchValue .next(value);
    }
    
  2. 组件#1

在这里设置新值

searchValueOnChange(value: any) {
            this.searchService.changeSearchValue(value);
        }
  1. 组件#2

在afterViewInit()方法内的#2组件中,我已订阅了observable,每次更改搜索值时,我都会使用新的搜索值执行搜索。

 this.searchSubscription = this.searchService.currentSearchValue
 .subscribe(value => {
       this.performSearch(value);
    }); 

Also in component #2 in onDestroy() I'm calling unsubscribe

ngOnDestroy(): void {
    this.searchSubscription.unsubscribe();
}

当我想重定向到新的URL时,出现问题,成功取消预订searchSubscription,但该值仍然存在。因此,当加载新页面并在afterViewInit方法中调用subscribe时,我仍然可以在subscribe中获得先前的值。如果我叫退订,是否应该得到初始值(未定义)?

0 个答案:

没有答案