2016-03-24 27 views
13

で状態を管理する私はあなたが使用してアプリケーションを作成している場合にのみ反応することが理解のみReduxとReact-Reduxを使用している場合、Reactコンポーネントの状態は必要ありませんか?

、あなたは別の内のあなたの状態のすべてを管理することになりますリアクト作成したコンポーネントを反応します。

あなたが反応と組み合わせてReduxのを使用する場合に反応し、Reduxの

、あなたがして、全体的なReduxのアプリケーションの状態にあなたのリアクトの各コンポーネントから状態のすべてを移動することができた状態を管理します。 Reduxアプリケーション状態のスライスを必要とする各コンポーネントは、React-Reduxのconnect関数を介して状態にフックできます。

質問

これはあなたがもはやが反応を扱うコンポーネントに反応書く必要があることを意味しないんのstate(すなわちthis.setState)リアクト-reduxがconnectがにデータを渡すことにより、Reduxの状態にコンポーネントを反応させるのINGのであるからcontainerコンポーネントはprops

+2

はい。あなたのアプリに関するより多くのディスカッションや詳細が必要かどうか。しかし、真実の単一のソースを持っていることは、常に素晴らしいです。 – azium

+1

Reactのみに固執したいが、コンポーネントの状態を処理するためのより軽量なアプローチを探しているときは、MobX(https://mobxjs.github.io/mobx/)のような状態管理ライブラリを追加することができます。内部コンポーネントの状態(https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.5xoga86e9)であなたを助けることができます。成分。 –

答えて

8

これにはさまざまな意見がありますが、一般的な見方では、reduxには「アプリケーション状態」のみが含まれているように見えます。ドロップダウンやモーダルのような個々の反応コンポーネントは、依然として独自の状態を持ちます。

あり、このかかわらず、上の議論の多くは、まだローカルコンポーネントの状態を管理する方法については、たとえば、この問題をチェックアウト:https://github.com/reactjs/redux/issues/159

いくつかのプロジェクトを、この「問題」を解決しようとしていることポップアップされています: (ローカル、グローバルではない状態のための減速のセマンティクスのためのより多くの)

+4

私はこれをもう一度します。 Reduxの作成者が言うことを聞いてみましょう。https://twitter.com/dan_abramov/status/623097205386293248 – dannyjolie

+2

私も同意します。ユーザーが入力フィールドを編集できる入力コンポーネントでは、小さなサイクルで状態を更新するだけです。残りの世界を知る必要なく、小さな反応成分に状態変化(入力フィールドの内容)を含めることができます。ユーザーが押すなどしてReduxにフルサイクル(必要な場合があります)が必要な場合は、 – wintvelt

+0

私は同意します。Reduxはストアにグローバルな状態を収集するツールであり、状態を接続する必要があります。 – Sequential

関連する問題