2016-04-07 6 views
1

私はここで少し頭を傷つけています。私は2つのアプリを持っています。彼らは別のツールです。しかし、ツール1の1つはツール2の一部を使用します。ツール1はツール2のRedux状態で取得できますか?何らかの形で私をバインドするためのミドルウェアはありますか?Shared Redux別のApp Store ..どのように?

ツールのAPP1は--- ---独自のReduxの店舗 ツールのAPP2を持っている私はAPP1のためAPP2から行動を必要とする独自の再来店

ています。したがって、新しいバージョンを「ビルドする」のではなく、単にAPP2のサブセクションをインポートして、それを使用してください。 APP1は現在、APP2サブコンポーネントに格納されている状態をどのように設定し、取得するかを知る必要があります。

これを行うための方法論はありますか?

さらに悪いことは悪いことになる、

+0

APP1のAPP2の「動作」が必要であることを具体的に説明できますか?異なるアプリ間でコンポーネントを確実に共有することができ、コンポーネントはアプリの動作を提供する必要があります。 Reduxは、主に状態*データ*を管理するためのものです。最小限のコード例を提供してより具体的にすることができれば、本当に役立つでしょう。今のところあなたがしようとしていることは完全にはっきりしていません。 –

+0

私はまだコードを持っていない、私はそれを構築していると私はそれを正しい方法を確認したい。例えば。 APP2では、独自のアクションを持つ「独自の」状態を持っているとします。あなたはAPP1で、私も同じ行動などを持っていると言っていますか?私はちょうど "同じ"店をインスタンス化しますか? –

+0

私はローカルストレージを使用していると思います。または赤字はあなたのapp1のパフォーマンスに影響します。それは、他のAPPを必要とするすべてのアクションに数ミリ秒の遅延を追加します。アプリ1とアプリ2の間の同期がミリ秒では重要でない場合は、tool1状態にtool2状態のコピーを保存し、特定のtool1操作でX秒ごとに更新することをお勧めします。こうすることで、アクションの実行が遅れることはなく、特定の時点でツール2のどのバージョンのツールが使用されているかを明確に把握できます。 – Harijoe

答えて

1

それほど難しい....私はのlocalStorageやRedisのetcにあるAPP2サブコンポーネントの状態を保存することができますね...そして私はそれでAPP1を水和することができます..しかし。

共有コンテナコンポーネント(react-reduxのconnect()を呼び出してラップする手段)、共有リデューサ、共有アクション(アクションクリエータ)、および共有ミドルウェアを提供することで、これを行うことができます。次に、コンテナコンポーネントを使用し、Reducersを挿入し、メインアプリケーションにMiddlewaresを適用します。

これはデモアプリケーションで、自己完結型の共有コンポーネントが含まれています。
https://github.com/kuy/popover-profile

タイムラインのApp:Online Demo
メッセージアプリケーション:Online Demo

ページでユーザー名をホバーしてください。ポップアッププロファイルが表示されます。

これらの2つのアプリケーションは、マウスオーバー名のGmailまたはSoundCloudのプロファイルツールチップのようなPopover Profileコンポーネントを共有します。共有コンポーネントだけでなく、このコンポーネントは(偽の)APIサーバーと通信します。これは、redux-sagaを使用する共有ミドルウェアによって実行できます。

関連する問題