web-dev-qa-db-ja.com

reduxを使用するときにthis.setState()を使用する必要がありますか?

Reduxを使用するときにthis.setState()を使用する必要がありますか?または、常にアクションをディスパッチし、小道具に頼るべきですか?

100
Martol1ni

setStateの明確な使用法は、ローカル表示状態を持つUIコンポーネント用ですが、グローバルアプリケーションには関係ありません。たとえば、特定のドロップダウンメニューがアクティブに表示されるかどうかを表すブール値は、グローバル状態である必要はないため、メニューコンポーネントの状態によってより便利に制御されます。

他の例には、階層のアコーディオン表示での行の折りたたみ/展開状態が含まれます。または、タブナビゲーションで現在選択されているタブ。ただし、これらの例の両方で、UI状態をグローバルに処理することを選択できます。たとえば、ページの更新によって保持されるように、ブラウザストレージで展開/折りたたみ状態を保持する場合、これが必要になります。

実際には、通常、そのようなUI要素をローカル状態で実装し、必要に応じてグローバル状態にリファクタリングするのが最も簡単です。

132
mjhm