2017-08-29 16 views
0

私はredux-observableを使ってreact-nativeでアプリケーションを構築しています。 今、私は、叙事詩を使用して、還元的に観察できる2つのアクションで簡単な装飾をするのに苦労しています。私が達成しようとしているのは、単に2つのアクションを1つにマップすることです。redux-observableで叙事詩を使って2つのアクションを一緒にシーケンシング

私は取得していますエラーは次のとおりです。

ここ
You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable. 

は、私が使用していたコードです:私には私が有効で使用していますRxJSコード

import { Observable } from 'rx'; 
 

 
export const startApplicationEpic = (action$: Observable) => 
 
    action$ 
 
    .ofType('START_APPLICATION') 
 
    .flatMap(() => 
 
     Observable.of(
 
     { type: 'REGISTER_PUSH_NOTIFICATIONS'}, 
 
     { type: 'AUTHENTICATION_REQUEST' } 
 
    ) 
 
    ); 
 
    
 
// index.js 
 

 
store.dispatch({ type: 'START_APPLICATION' })

、もしepicsがこれ以上のストリームであれば、それとも叙事詩から単一のアクションをディスパッチできますか?

+2

何行でエラーが発生しますか?あなたがここに示したコードのどこかにいると確信していますか?また、 'rx'ではなく' rxjs'からインポートしたいと思うかもしれません。 – martin

+1

v4アダプタ(redux-observable-adapter-rxjs-v4)を使用していますか?もしそうでなければ、あなたは間違いなくnpmに 'rxjs'ではなく' rx'で公開されているv5を使う必要があります。 – jayphelps

+0

マーティン、ありがとう。私はrxjの代わりにrxjを使用する必要がありました。これはredux-observableの依存関係であり、すべて正常でした。フードの下ではかなりの違いがあると思います。 –

答えて

2

rxjs(v5)の代わりにrx(v4)をインポートしているようです。したがって、あなたのコードは、v5 ObservableのflatMapにv4 Observableを提供しています(デフォルトではredux-observable内部がv5になります)。 2つのバージョンはデフォルトで相互運用することはできませんが、temporary interop layersがあります。私はこれがすべてかなり混乱していることを認めます。

redux-observableでv4を使用する最も良い方法は、作成したアダプタをredux-observable-adapter-rxjs-v4に含めることです。事故でv4を使用している場合、またはそれ以外の点で違いがない場合は、間違いなくv5を使用してください。エラーなし

あなたはそれを修正したら、予想通り提供作品としてコード:https://jsbin.com/xiqigi/edit?js,console

+0

私は頭を2時間叩いていて、プロジェクトの依存関係をチェックしなかった。入力いただきありがとうございます。 –

関連する問題