Angular 角度6升级:去BounceTime不是主体的属性
我正在尝试将我的应用程序从Angular 5升级到Angular 6。我沿着楼梯走 至少我认为我做到了 错误是:Angular 角度6升级:去BounceTime不是主体的属性,angular,typescript,rxjs,Angular,Typescript,Rxjs,我正在尝试将我的应用程序从Angular 5升级到Angular 6。我沿着楼梯走 至少我认为我做到了 错误是: Property 'debounceTime' does not exist on type 'Subject<string>'. 类型“Subject”上不存在属性“debounceTime”。 此外,我的组件丢失了debounceTime导入。我认为ng更新删除了它 我在@Siva636和@Andrew Lobban的帮助下解决了这个问题 我需要使用管道: t
Property 'debounceTime' does not exist on type 'Subject<string>'.
类型“Subject”上不存在属性“debounceTime”。
此外,我的组件丢失了debounceTime导入。我认为ng更新删除了它 我在@Siva636和@Andrew Lobban的帮助下解决了这个问题 我需要使用管道:
this.field$.pipe(
debounceTime(400),
distinctUntilChanged())
在reactivex文档之后,您还应该订阅可观察的管道:
.pipe(
debounceTime(500),
distinctUntilChanged(),
map((val) => {
...
})
)
.subscribe();
很抱歉耽搁了,我今天刚解决了这个问题,就这样解决了。 我是这样解决这个问题的: 第一次导入如下:
import {debounceTime} from 'rxjs/operators';
import {pipe} from 'rxjs'
然后创建一个类似这样的常量(我试图不复制管道而直接执行,但不起作用,所以我找到了这个解决方案):
然后在订阅之前使用它,例如,我正在对邮件进行电子邮件验证:
const emailControl = this.registerForm.get('email');
emailControl.valueChanges
.pipe(debouncetime)
.subscribe(value => this.setEmailMessage(emailControl))
不知道这是否是最好的解决方案,但它工作得很完美。
我希望它能帮助一些人 从Angular 6.1.8开始,只需导入并添加管道,如下例所示
从'rxjs/operators'导入{debounceTime}你是这样导入的吗:从rxjs/operators导入{debounceTime}?是的。我添加了以下语句:从'rxjs/operators'导入{map,taketill,tap,debounceTime};另外,您是否对操作符进行了管道连接而不是链式连接?应该是这样。字段$.pipe(debounceTime(400))是的,RxJS正在脱离v6中的点链式连接@Logan_B看起来正确…@Logan_B我从那以后就没有升级过。我仍然运行旧版本。我记不起错误了不需要debouncetime变量,只需do.pipe(debouncetime(1000))
const emailControl = this.registerForm.get('email');
emailControl.valueChanges
.pipe(debouncetime)
.subscribe(value => this.setEmailMessage(emailControl))