2016-11-12 10 views
0

reduxステートツリーで直列化不可能なオブジェクトへの直列化可能な参照を格納する共通の方法はありますか?reduxストアでの参照

単純な使用例は、reactjsクライアントから[かなり大きな]ファイルをサーバーにアップロードすることです。そのようなアップロードがreduceアクションによって駆動されるフォーム提出アルゴリズムの一部である場合、我々はストア内のファイルへの参照を保持する必要があります。最も簡単な方法は、ファイルの内容全体をストアに保存することですが、これは大容量のファイルでは効率的ではありません。

私が考えている方法の1つは、{stringkeyBlob}の単純なマップを導入し、stringkeyを状態ツリーに保持することです。この場合、未使用のキーを削除するには参照カウントなどを実装する必要があります。

良い方法がありますか?

答えて

2

大容量のファイルを格納するために店舗を利用するのは避けてください。これはアプリケーションの状態を維持するため、ファイルへの参照が必要なだけのものでなければなりません(偶然、ストアをデータベースの練習に沿って正規化しておくことをお勧めします)。

私はレデューサーロジックからファイルをアップロードする際の影響を抑えたいと思います。ミドルウェアでこれを行うことができます。これにより、ファイルがアクションの一部としてアップロードされます。成功した場合、後続のアクションは、後続のレンダリング、アプリケーションの状態などに必要なものでストアを更新します。実際のファイル(必要な場合)は、別の場所に保存し、単に店舗から参照することができます。

+0

私は同意し、間違いなく店舗にファイルを保管する予定はありません。今のところミドルウェアの使用を避けようとしていますが、これはオプションの1つになる可能性があります。ストアから直列化不可能なオブジェクトを参照する適切な(そして好ましくは普遍的な)方法をもっと探します。ちょうど誰かが既にそれのためのユニバーサルプラグインソリューションを持っていたかもしれません –

+0

OK;あなたのプロジェクトには最高の運があります。 –

関連する問題