私はかなり新しく反応しており、現在は反応しているネイティブを使用しています。私は状態管理ライブラリから分離されたコンポーネントを作成しようとしています。私の問題は、現在reduxを使用していますが、コンポーネント自身がthis.state
とthis.setState
を使用して、内部パターンをアンチパターンのように保ち、レンダリングが動作していないように見えることが原因です。だから私の質問は、どのように私はredux、フラックスなどに依存しないが、内部状態を維持することができる分離コンポーネントを作成することですか?サードパーティのコンポーネントは通常どのようにそれを行いますか?外部UIコンポーネントにsetStateを使用しますか?
1
A
答えて
1
私はコンポーネントの状態(this.state
)を使用するとアンチパターンではないと思います。実際、これはコンポーネントが内部状態を維持/更新する正しい方法だと私は考えています。あなたが気づく必要があるのは、コンポーネントの状態(this.setState
を使用)を変更すると、render()
が再び呼び出されるということだけです。状態を更新したいが、でない場合は、コンポーネントを再度レンダリングしたい場合は、コンポーネントのshoudComponentUpdate(nextProps, nextState)
関数をオーバーライドして適切に実装する必要があります。
コンポーネントが状態を更新する理由はたくさんあります。例えば、私はこれに似たrender()
機能を持つコンポーネントいますので、現在の状態に基づいて、構成要素は、対応する子コンポーネントを
render() {
if (this.state.networkError) {
return <ErrorView />
} else if (this.state.isLoading) {
return <Spinner visible={true}/>
} else {
return <Text>Success</Text>
}
}
をレンダリングします。
関連する問題
- 1. 外部JARから複合コンポーネントのリソースを使用する
- 2. コンポーネント(外部モジュール、つまりWebSocket)外部のストア関数(ディスパッチ、getState)を使用します。
- 3. コンポーネントをAndroid SDKマネージャの外部にインストールしますか?
- 4. C#/ XamlのWPFコンポーネントに外部イベントハンドラを追加しますか?
- 5. setStateまたはrefを使用して更新しますか?
- 6. 外部プロセスを使用したUIのフリーズ
- 7. コンポーネントの外部からのデータを使用してポリマーコンポーネントを更新する
- 8. Reactのコンポーネントを外部から参照しますか?
- 9. コード化されたUIテストを外部サイトで使用できますか?
- 10. スタイリッシュなコンポーネントを使用するUIライブラリ
- 11. 外部キーを使用してテーブルに挿入しますか?
- 12. 外部UIからインストールをキャンセルする
- 13. AngularJS外部UIライブラリ
- 14. コンポーネントを使用してコントロールにカスタムUIビヘイビアを追加する
- 15. zend framework 2/3コンポーネントの外部zfアプリケーションを使用
- 16. Openfire XMPP外部コンポーネントを構築する - TinderまたはWhackを使用しますか?
- 17. ReactJS setStateが親コンポーネントから子コンポーネントに伝播しない変更
- 18. AngularJSはjQueryを使用しないSemantic UIコンポーネントを有効にします
- 19. ReactネイティブカスタムUIコンポーネントでCocoaPodモジュールを使用
- 20. 外部コンポーネントがサードパーティのアセンブリから例外をスローしました
- 21. フォームの外部コンポーネントからの外部送信フォーム
- 22. 外部UIスレッドからgridviewを更新
- 23. React:componentDidMount + setStateはコンポーネントを再レンダリングしません
- 24. React:コンポーネントを外部に作る
- 25. アンギュラ2に外部コンポーネントを含める
- 26. C#.NET 2の例外:外部コンポーネントが例外をスローしました
- 27. 外部Angular 2コンポーネントのインポートに失敗しました
- 28. 外部パスワードストアを使用してOracleでsqlalchemy dburiを使用しますか?
- 29. ネイティブネイティブUIコンポーネントに反応します
- 30. onActivityResultを使用してListViewを起動するUIコンポーネント