我无法像以前一样更新商店(将rxjs更新为v.6并将angularfire更新为v.5)

时间:2018-06-27 19:49:39

标签: angular firebase firebase-realtime-database rxjs

自从我将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上有红色下划线,但是该应用程序可以正常运行并且可以执行我想要的操作!

1 个答案:

答案 0 :(得分:1)

npm install rxjs-compat @ 6-保存

尝试一下。 它将起作用。