我订阅了behaviorSubject的observable,它触发了太多次。只有当我在同一个组件路径上导航时才会发生,例如...文件夹-文件夹-文件夹,现在...删除文件触发了x3次。
订阅代码:
this.headerService.selectedItems.subscribe( {
next:(value) =>
if (this.selectedRowsIds.size >= 1 && value === true) {
this.deleteDocs();
}... and here value comes x3 times
行为主体:
x一个一个一个一个x一个一个二个x
我试图取消订阅,发送错误触发每次当我导航,但没有任何变化。
我提到,在这种情况下,组件不会被破坏,因为我们在同一组件上打开文件夹-文件夹-文件夹,并更改路径参数。
1条答案
按热度按时间idfiyjo81#
这个问题可能是由于许多其他因素
1.由于工艺路线的任何变更。
1.由于未在正确的时间释放值。
1.行为主体在用
{}
初始化new BehaviorSubject<any>({})
(它发出的空对象和它持有的该值)后立即触发该值我的解决方案:
当从deleteButton发出一个值并且该值为true时,它将订阅操作,然后它将通过十进制操作符执行所需的逻辑