2017-02-09 6 views
0

私はアプリケーションに共通のモーダルReactコンポーネントを作成して、さまざまなことを表示しています。プレーンなHTMLとインタラクティブなReactコンポーネントの両方を表示するのに十分な柔軟性を持たせたいと思います。ReduxリデューサにReactコンポーネントを格納していますか?

私はReduxモーダルレデューサーに表示可能なコンポーネントを保存するように働いています。これまでのところ、私は問題に遭遇していません。

これまで誰かがこのアプローチを採用していますか?私はこのオンラインの例を見つけることができなかったので、これが悪い習慣であるかどうかはわかりません。もしそうなら、これを処理すべきだと提案する別の方法がありますか?

答えて

1

これはうまくいくかもしれませんが、本当にそうする必要はないと思います。コンポーネント全体をストアに保存しないでください。 の状態のみを保存します。これはシリアル化可能であり、コンポーネントにpropsとして渡す必要があります。コンポーネントのrender()機能がレンダリングを行います。

はReduxののFAQを参照してください:

は、私は私の店状態で機能し、約束、または他の非直列化可能アイテムを置くことはできますか?

単純なシリアライズ可能なオブジェクト、配列、およびプリミティブをストアに配置することを強くお勧めします。技術的には、シリアライズ不可能なアイテムをストアに挿入することは可能ですが、そうすることで、ストアの内容を保持して再水分を補うことができ、タイムトラベルのデバッグを妨げる可能性があります。

永続性とタイムトラベルのデバッグなどが意図したとおりに機能しない可能性がある場合は、非直列化可能アイテムをReduxストアに入れることを歓迎します。最終的に、それはあなたのアプリケーションであり、どのように実装するかはあなた次第です。 Reduxに関する他の多くの事柄と同様に、トレードオフがどのようなものであるかを理解してください。

http://redux.js.org/docs/faq/OrganizingState.html#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state

また、あなたはこのスレッドの議論を読むことができます:https://github.com/reactjs/redux/issues/1793

+0

は、洞察力をいただき、ありがとうございます。私はそれをより良く、より「還元的に」扱う方法がなければならないと考えました。ディスカッションスレッドごとに、ストアに静的IDを格納してから汎用コンポーネントマッパーを作成する方が良い方法です。 –

関連する問題