2016-08-16 8 views
3

Angular2アプリケーションでngrx/effectsを使用しています.RC5のリリース以降、エラーが発生しています。これは私のコードです:ngrx/effects switchMapがAngular2で機能しなくなりました。RC5

import { Injectable } from '@angular/core'; 
import { Effect, Actions } from '@ngrx/effects'; 
import { UserActions } from './user.actions'; 
import { LoginService } from '../login'; 

constructor(
    private updates$: Actions, 
    private userActions: UserActions, 
    private loginService: LoginService 
) {} 

@Effect() loadUser$ = this.updates$ 
    .ofType(UserActions.LOAD) 
    .switchMap(() => this.loginService.loadUserData()) 
    .map(user => this.userActions.loadUserComplete(user.userData)); 

上記のコードはngrx/effects 1.1.1のAngular2 RC4でうまくいきました。

しかし、私はRC5に対する角度アップグレードしたとき、私はエラーました:最新バージョン2.0.0-beta.2へUnhandled Promise rejection: this.updates$.ofType(...).switchMap is not a function

はIその後、アップグレードngrx /エフェクト(マニュアルに従って、新しい用にカスタマイズする必要がありますRC5 NgModule)しかし、上記と全く同じエラーが発生しました。そして、はい、whenAction()の機能をofType()に変更しました。

アイデア?

答えて

7

角度2のプロジェクトですべてのRxJS演算子を自動的にインポートするわけではありません。 switchMapオペレータを手動でインポートしてみましたか?

import 'rxjs/add/operator/switchMap'; 

これはあなたのコードのどこかに存在している必要がありますが、おそらくそれはもはやオペレーターをインポートしないの前に、サードパーティのライブラリによってインポートされました。

+2

私はこのインポートを持っていますが、 'Property' switchMap 'がObservable型{<[key:string]:any; }> ' – naz786

+0

これは私のために働いた。 – jDub9

関連する問題