[解決済み] リアクトコンポーネントの状態をリセットするには?
2022-09-24 09:22:44
質問
コンセプト的にステートフルなリアクトコンポーネントをリセットしたいことがあります。 理想的な動作は、古いコンポーネントを削除して、新しい、原始的なコンポーネントを読み込むことと同等です。
Reactはメソッドを提供しています。
setState
というメソッドがあり、コンポーネント自身の明示的な状態を設定できますが、ブラウザのフォーカスやフォームの状態などの暗黙的な状態は除外され、子の状態も除外されます。 間接的な状態をすべてキャッチするのは厄介な作業で、私は、驚くべき状態の新しいビットごとにモグラたたきをするよりも、厳密かつ完全にそれを解決することを好みます。
これを行うためのAPIやパターンはありますか?
編集してください。
を実演するつまらない例を作りました。
this.replaceState(this.getInitialState())
アプローチと対照的に
this.setState(this.getInitialState())
のアプローチと対照的です。
jsfiddle
-
replaceState
の方がより堅牢です。
どのように解決するのですか?
あなたが言及した暗黙のブラウザの状態や子供の状態がリセットされるようにするためには、ブラウザに
key
属性
で返されるルートレベルのコンポーネントに
render
によって返されるルートレベルのコンポーネントです。それが変更されると、そのコンポーネントは捨てられ、ゼロから作成されます。
render: function() {
// ...
return <div key={uniqueId}>
{children}
</div>;
}
個々のコンポーネントのローカルな状態をリセットするためのショートカットはありません。
関連
-
[解決済み] エラー: 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み] Webpack + Babelです。プリセット "es2015 "がディレクトリに相対して見つからなかった
-
[解決済み] 'Proptypes'が定義されていない
-
[解決済み] React Hooksの「exhaustive-deps」lintルールを理解する
-
[解決済み] setStateを呼び出さずにReactコンポーネントを強制的に再レンダリングすることは可能ですか?
-
[解決済み] Reactコンポーネント外でのクリックを検出する
-
[解決済み] Reactのstateとpropsの違いとは?
-
[解決済み] Reactでネストした状態のプロパティを更新する方法
-
[解決済み] Reactで親の状態を更新するにはどうしたらいいですか?
-
[解決済み】Reactコンポーネントはpropsから状態を初期化する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] React テキストを挟んだ横長の仕切りを作る
-
[解決済み] FontAwesomeの無料パッケージに含まれているアイコンのオブジェクト名はどこにあるのですか?
-
[解決済み] error 'document' is not defined : eslint / React
-
[解決済み] Angular 2の*ngForのReactでの同等品
-
[解決済み] react router dom v4でwebpack dev serverを構成する方法は?
-
[解決済み] プロップ `history` は `Router` で必須とマークされているが、その値は `undefined` である。
-
[解決済み] Static HTML elements with event handlers require a role." を修正するにはどうすればよいですか?
-
[解決済み] Cross-envでyarnの実行時にenv変数が変更されない。
-
[解決済み] React Hooksの「exhaustive-deps」lintルールを理解する
-
[解決済み] reactのuseStateフックでコールバックを使う方法 [重複]。