2016-10-16 6 views
7

ngrx/effectsを使用しています。ngrx:指定されたパラメータが呼び出し対象のシグネチャと一致しません

5.0.0-beta.12に5.0.0-rc.1からrxjsを更新した後、私のIDE WebStormは私に(赤い下線)以下のエラーになります。私のアプリケーションを実行すると、同じエラーが端末にも表示されます。

パラメータがコールターゲットのシグネチャと一致しません。

enter image description here

@Effect() updateProfile$ = this.actions$ 
    .ofType(ProfileActions.PROFILE_UPDATE_PROFILE) 
    .map<string>(toPayload) 
    .switchMap(name => this.profileService.updateProfile(name) 
     .map(name => ({ type: ProfileActions.PROFILE_UPDATE_PROFILE_SUCCESS, payload: name })) 
     .catch(error => Observable.of({ type: ProfileActions.PROFILE_UPDATE_PROFILE_FAIL, payload: error })) 
    ); 

updateProfile(name: string): Observable<string> { 
    return Observable.of(name); 
    } 
  • 私はmap<string>(toPayload)を使用するたびにこのエラーが発生します。 .map<any>(action => action.payload)に変更しようとしましたが、それと同じエラーです。

  • map<string>(toPayload)を指定しないと、 エラーが発生しません。

私にエラーが表示されますが、アプリはまだうまく動作します。

この問題を解決するにはどうすればよいですか?

答えて

11

rxjs 5.0.0-rc.1では、すべての演算子のジェネリック型パラメータが、最初に観測可能なソースの型を受け入れるように変更されました。

あなたはそれに応じてmapオペレータコールを変更する必要があります。

actions$ 
    .ofType(ProfileActions.PROFILE_UPDATE_PROFILE) 
    .map<Action, string>(toPayload) 
+1

ちょうど 'Action'は「@ ngrx /ストア」から'インポート{アクション}からで、ギッターからマイクの単語を追加; '。または '.map (toPayload)'も動作します。 –

関連する問題