【发布时间】:2018-11-26 20:40:01
【问题描述】:
我正在为下面的代码示例而苦苦挣扎。我试过让compareFilters总是return true,总是return false,无论哪种方式,我的日志中都会有很多“*******”——至少有一个应该完全切断我的供应预期的?我错过了什么?
this.filters = this.store
.select(state => state.filters)
// This line needed as otherwise change in geolocation triggers state to be
// resent, overwriting any changes user has made on filters menu
.pipe(
distinctUntilChanged(compareFilters),
tap((filters: Filters) => {
console.log("*****", filters);
this.location.pushState(
{},
"",
"/recommendations/" + toUrl(filters)
);
})
);
更一般地说,我在组件中看到的是,无论状态的哪个部分发生了变化,ngOnChanges 每次都会报告所有道具的变化
【问题讨论】:
-
我喜欢你的方法,事实上我尝试了完全相同的事情并得到了同样令人失望的结果 - 例如。什么时候总是返回真/什么时候总是返回假......它仍然允许一切都在管道中进行
-
啊我解决了我的问题 - 我正在使用 angular 并且有 25 个组件实例,每个实例都单独订阅 - 所以看起来管道被触发了 25 次,但实际上它每个实例被触发一次