2017-11-24 17 views
0

私はいくつかのAPI呼び出しを実行するReactコンポーネントを持っています。初期ロードでは、デフォルトのAPI呼び出しが実行されます。グローバルな状態/小道具をAPI呼び出し(Reduxなし)で反応させます

default API呼び出しから、since_launchというプロパティから状態を保存する必要があります。後続のAPI呼び出しがコンポーネント上で実行されると、since_launch状態は後続のAPI呼び出しで使用できないため失われます。私はsince_launch状態を保存する必要があるので、残りのAPI呼び出しでロジックを判断するために使用することができます。

アプリケーションはReduxを使用しないため、グローバル状態を保存するオプションではありません。回避策として、初期ロード時にsince_launchを保存するためにローカルストレージを使用しましたが、これは正しくはありません。私が達成しようとしていることは単に不可能であることを、何らかのアイデアが評価したり明確にしています。

+0

異なるAPI呼び出しごとに状態全体を更新していますか? –

+0

はい、Recompose – londonfed

+0

を使用して各呼び出しで小道具を介して状態全体を更新します。なぜそれをしますか?あなたにそれを使用することに何らかの利点がありますか? –

答えて

0

アプリケーションはので、これは、複数のコンポーネントに反応し、それらを思わ間のシェアは/それを操作するためのデータを取得使用してグローバルな状態

を保存するオプションがないReduxのを使用していない、そのアプリケーションが使用する必要がありますflux-data stream、およびreduxが最適です。また、API呼び出しは常に非同期であるため、reduxだけでは不十分です。提案タスクの事実上の標準であるredux-sagaのようなプロセスマネージャも使用する必要があります。

reduxがお好きで、カスタムソリューション(これは奇妙です)を使いたい場合は、単にプロバイダと簡単なプロセスマネージャを作成してください。プロバイダは、共有状態を格納し、Contextメカニズムによってコンポーネント間で配布する必要があります。シンプルなプロセスマネージャは、ライフサイクル全体のコンポーネントでミドルウェア機能であり、キュー内でAPIコールの結果を取得する必要があります。自身の状態のない機能コンポーネントでなければなりません - PageまたはProviderです - あなたはreduxを使用するかどうか、全ての一除き、コンポーネントを反応させるのならば
は、とにかく

(しかし、その結果であなただけのこのhttps://github.com/freeman-lab/miniduxのようなものを改革します) 。別のケースでは、Reactの使用による利益は失われます。

関連する問題