ReactJS:コンポーネントを再レンダリングした後もチェックボックスの状態が持続する

Chirag Mongia

JSfiddleを作成しました

このフィドルでは、最初propsに、コンポーネントに渡されたチェックボックスに基づいてチェックボックスのリストがレンダリングされます。Re-renderボタンをクリックすると、同じコンポーネントが異なるセットのでレンダリングされますprops

今、以下の手順に従ってください-

  1. jsfiddleをロードします
  2. チェックボックスのいずれかをチェックします(2番目と3番目のチェックボックスをチェックするとします)
  3. ボタンをRe-renderクリック

コンポーネントをnewpropsレンダリングした後でも、チェックしたチェックボックスの状態は変更されません(2番目と3番目はチェックされたままです)

なぜそれが起こるのですか?チェックボックスの状態が持続しないように、新しい小道具のセットを使用してコンポーネントを再レンダリングするにはどうすればよいですか。

リュボミール

Reactの diffアルゴリズム は賢いからです。新しいコンポーネントを再レンダリングするための条件は次のとおりです。

  • コンポーネントのキーが異なる(異なるキー)
  • または、実際には異なるHTML要素です(異なるノードタイプ)

これが実際の例です:http//jsfiddle.net/lustoykov/ufLyy3vh/

事はある-あなたの再描画するためにどちらの条件 input要素が満たされているので、本当に古い再利用リアクト input私がやったことは、各再レンダリングのkeyすべてのinput要素に対して新しいものを生成することです。Reactは、key変更とinputが正しいで再レンダリングされるため、これが新しい要素であると想定しますvalue


Math.random()-それを再描画してくださいねえ、反応して、この要素が変更されている:あなたは別の鍵を生成させるために必要であり、それはようなものです。

ただし、 Reactの哲学に反しているため、さまざまなキーを使用したこのアプローチには反対します。毎回同じ要素を再レンダリングするのに、なぜReactを使用するのですか?これがReactのコアです。コンポーネントが同じ場合は再レンダリングしないでください。代わりに、onChangeハンドラーを使用して、入力コンポーネント全体を明示的に再レン​​ダリングせずに、入力の値のみを更新する必要があります

Reactフォームの操作方法をご覧ください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

コンポーネントの再レンダリングは、チェックボックスがチェックされたイベントReactを伝播し続けます

分類Dev

チェックボックスは、ReactJSのコンポーネント間で状態を保持します

分類Dev

Redux-チェックボックストグル(およびコンポーネントの再レンダリング)で状態変数を更新します

分類Dev

React:ボタンクリック後にコンポーネントを再レンダリングします

分類Dev

ディスパッチ後、状態のさまざまなスライスからコンポーネントが再レンダリングされます

分類Dev

状態が変化しても、ページの更新後にコンポーネントを再レンダリングしないで反応する

分類Dev

コンポーネントの状態の変更/再レンダリングで `useLazyQuery`クエリが再フェッチされるのを防ぐことは可能ですか?

分類Dev

useStateフックが状態を変更したときにReact.jsコンポーネントが子を再レンダリングしない

分類Dev

コンポーネントは再レンダリングされませんが、reactフックを介してredux状態が変更されました

分類Dev

React-チェックボックスが選択されているときにクラスコンポーネントをレンダリングする

分類Dev

状態を変更した後、Reactコンポーネントが再レンダリングされない

分類Dev

React / reactフック:状態が変更された後、子コンポーネントが再レンダリングされませんか?

分類Dev

コンポーネントのリダイレクト後、AngularMaterialテーブルの状態を維持する

分類Dev

React Native-状態フックが更新され、コンポーネントが再レンダリングされますが、何も表示されません

分類Dev

レンダリングプロップでラップされたコンポーネントの状態を維持して反応する

分類Dev

reduxの状態が変化したときにコンポーネントを再レンダリングするには、どのReactサイクルメソッドを使用する必要がありますか?

分類Dev

状態がオブジェクトのオブジェクトである場合、コンポーネントは再レンダリングされます

分類Dev

反応する。チャットキットAPI。MessageListコンポーネントのバグ-他の部屋からのメッセージをレンダリングします。コンポーネントのライフサイクルと状態

分類Dev

チェックボックスを使用してVueJSでレンダリングされたHTMLをエクスポートすると、チェックされた状態を保持できません

分類Dev

新しい状態を設定しても、コンポーネントはReactフックで再レンダリングされません

分類Dev

すべてのAndroidコンポーネントを再インストールした後でも、adb.exeがクラッシュし続ける

分類Dev

React Native:フェッチリクエストにコンポーネントの状態を使用する

分類Dev

階層を変更した後、状態を維持し、reactコンポーネントの再レンダリングを防ぐ方法は?

分類Dev

コンポーネントが再レンダリングされる回数をReactチェックします

分類Dev

reactでの非同期呼び出し後に状態の更新とコンポーネントの再レンダリングをテストする方法

分類Dev

setStateのコールバック関数は、レンダリング時に最後のコンポーネントの状態を親コンポーネントの状態にのみ入力します

分類Dev

状態を変更した後、コンポーネントが再レンダリングされないのはなぜですか?

分類Dev

Reactチェックボックスコンポーネント:状態の変化をどこに保持する必要がありますか?

分類Dev

ReactJsのマップ関数内のコンポーネントをレンダリングするために個々の状態を設定する方法

Related 関連記事

  1. 1

    コンポーネントの再レンダリングは、チェックボックスがチェックされたイベントReactを伝播し続けます

  2. 2

    チェックボックスは、ReactJSのコンポーネント間で状態を保持します

  3. 3

    Redux-チェックボックストグル(およびコンポーネントの再レンダリング)で状態変数を更新します

  4. 4

    React:ボタンクリック後にコンポーネントを再レンダリングします

  5. 5

    ディスパッチ後、状態のさまざまなスライスからコンポーネントが再レンダリングされます

  6. 6

    状態が変化しても、ページの更新後にコンポーネントを再レンダリングしないで反応する

  7. 7

    コンポーネントの状態の変更/再レンダリングで `useLazyQuery`クエリが再フェッチされるのを防ぐことは可能ですか?

  8. 8

    useStateフックが状態を変更したときにReact.jsコンポーネントが子を再レンダリングしない

  9. 9

    コンポーネントは再レンダリングされませんが、reactフックを介してredux状態が変更されました

  10. 10

    React-チェックボックスが選択されているときにクラスコンポーネントをレンダリングする

  11. 11

    状態を変更した後、Reactコンポーネントが再レンダリングされない

  12. 12

    React / reactフック:状態が変更された後、子コンポーネントが再レンダリングされませんか?

  13. 13

    コンポーネントのリダイレクト後、AngularMaterialテーブルの状態を維持する

  14. 14

    React Native-状態フックが更新され、コンポーネントが再レンダリングされますが、何も表示されません

  15. 15

    レンダリングプロップでラップされたコンポーネントの状態を維持して反応する

  16. 16

    reduxの状態が変化したときにコンポーネントを再レンダリングするには、どのReactサイクルメソッドを使用する必要がありますか?

  17. 17

    状態がオブジェクトのオブジェクトである場合、コンポーネントは再レンダリングされます

  18. 18

    反応する。チャットキットAPI。MessageListコンポーネントのバグ-他の部屋からのメッセージをレンダリングします。コンポーネントのライフサイクルと状態

  19. 19

    チェックボックスを使用してVueJSでレンダリングされたHTMLをエクスポートすると、チェックされた状態を保持できません

  20. 20

    新しい状態を設定しても、コンポーネントはReactフックで再レンダリングされません

  21. 21

    すべてのAndroidコンポーネントを再インストールした後でも、adb.exeがクラッシュし続ける

  22. 22

    React Native:フェッチリクエストにコンポーネントの状態を使用する

  23. 23

    階層を変更した後、状態を維持し、reactコンポーネントの再レンダリングを防ぐ方法は?

  24. 24

    コンポーネントが再レンダリングされる回数をReactチェックします

  25. 25

    reactでの非同期呼び出し後に状態の更新とコンポーネントの再レンダリングをテストする方法

  26. 26

    setStateのコールバック関数は、レンダリング時に最後のコンポーネントの状態を親コンポーネントの状態にのみ入力します

  27. 27

    状態を変更した後、コンポーネントが再レンダリングされないのはなぜですか?

  28. 28

    Reactチェックボックスコンポーネント:状態の変化をどこに保持する必要がありますか?

  29. 29

    ReactJsのマップ関数内のコンポーネントをレンダリングするために個々の状態を設定する方法

ホットタグ

アーカイブ