自从我将rxjs和firebase升级到最新版本(6和5)以来,我遇到了很多问题。
问题1。
我的商店再也无法正常工作了,原因是发生了重大更改,distinctUntilChanged()现在变成了红色下划线,并说:“类型为'MonoTypeOperatorFunction'的参数不能归因于类型为'UnaryFunction,Observable>'的参数”。>
private store = this.subject.asObservable().pipe(distinctUntilChanged());
问题2。
我无法使用tap运算符为我的商店设置新数据(以前是这样做的)
articles$: Observable<Article[]> = this.db.list(`articles/${this.uid}`).valueChanges()
.pipe(tap(next => {
this.store.set('meals', next);
}));
我的商店外观
import { Observable } from 'rxjs/Observable';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { pluck, distinctUntilChanged } from 'rxjs/operators';
import { User } from './app-admin/services/auth.service';
export interface State {
user: User,
[key: string]: any
}
const state: State = {
user: undefined,
meals: undefined
};
export class Store {
private subject = new BehaviorSubject<State>(state);
private store = this.subject.asObservable().pipe(distinctUntilChanged());
get value() {
return this.subject.value;
}
select<T>(name: string): Observable<T> {
return this.store.pluck(name);
}
set(name: string, state: any) {
this.subject.next({ ...this.value, [name]: state });
}
}
编辑:
感谢@RonY_Patel。 当前正在使用命令
npm install rxjs-compat@6 --save
和
npm i -g npm-check-updates
ncu -u
npm install
我的.do
上有红色下划线,但是该应用程序可以正常运行并且可以执行我想要的操作!
答案 0 :(得分:1)
npm install rxjs-compat @ 6-保存
尝试一下。 它将起作用。