[英]Angular 8 Rxjs distinctUntilChanged operator
我的代码和 distinctUntilChanged 运算符有问题。
这是我的代码:
ngAfterViewInit() {
fromEvent(this.headlineInput.nativeElement, 'blur').pipe(
takeUntil(this.unsubscribe$),
map((evt: any) => evt.target.value),
distinctUntilChanged()
).subscribe((text: string) => {
this.onInputValueChanges(text);
});
}
在这段代码中,我想在模糊上运行this.onInputValueChanges(text)
方法,但只有当标题输入中的某些内容发生变化时。 如果没有,则不应在 subscribe 中运行此方法。 我以为我可以使用distinctUntilChanged,但它似乎不起作用。 只要我的标题输入变得模糊,它就会运行。 难道我做错了什么? 有人能指出我这段代码有什么问题吗? 谢谢!
如果你想偷懒,你可以检查对象值是否与之前的发射不同。
ngAfterViewInit() {
fromEvent(this.headlineInput.nativeElement, 'blur').pipe(
takeUntil(this.unsubscribe$),
map((evt: any) => evt.target.value),
// don't run if the stringified version of the object is the same.
distinctUntilChanged((pre: any, curr: any) => JSON.stringify(pre) === JSON.stringify(curr)),
).subscribe((text: string) => {
this.onInputValueChanges(text);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.