フックされた要素が変更されてもコンポーネントは変更されません

peterchan127

現在、表示したい要素の詳細はに保存されていInfo.jsます。Parent.jsChild.js格納されている情報Info.jsは配列あるため、必要な詳細をインポートし、.map関数によってそれぞれに挿入する責任があります。

ユーザーが押したボタンで相対的な子コンポーネントを動的に表示したい。たとえば、ユーザーがで[First-Tier]ボタンをクリックすると、「First-Tier」のカテゴリのコンポーネントParent.jsのみChild.jsが表示されます。現時点では、私のコードは機能していません。問題はuseEffectにあると思いますが、これを修正する方法がわかりません。

あなたのインスピレーションを楽しみにしています。ありがとう、そして安全を保ってください。

---> Parent.js

import React, { useState, useEffect } from "react";
import Info from "./Info";
import Child from "./Child";

let Category = ["All", "First-Tier", "Second-Tier"];

const Parent = () => {
  const [categoryChosen, setCategoryChosen] = useState("All");
  let PartsShown = [...Info];
  useEffect(() => {
    PartsShown = [
      ...PartsShown.filter((e) => e.category[1] === categoryChosen),
    ];
  }, [categoryChosen, PartsShown]);
  return (
    <div>
      <div>
        {Category.map((element) => (
          <button
            style={{ margin: 10 }}
            key={element}
            onClick={() => setCategoryChosen(element)}
          >
            {element}
          </button>
        ))}
      </div>
      <div>{categoryChosen}</div>
      <div>
        {PartsShown.map((e) => (
          <Child
            key={e.name}
            name={e.name}
            category={e.category[1]}
          />
        ))}
      </div>
    </div>
  );
};

export default Parent;

---> Child.js

import React from "react";

const Child = ({ name, category }) => (
  <div style={{ margin: 10 }}>
    <h1>{name}</h1>
    <p>{category}</p>
    <hr />
  </div>
);

export default Child;

-> Info.js

const Info = [
  {
    name: "A",
    description: "Description of A ",
    category: ["All", "First-Tier"],
  },
  {
    name: "B",
    description: "Description of B",
    category: ["All", "Second-Tier"],
  }
];
export default Info;
アヌパムチャウダリー
import React, { useState } from "react";
import Info from "./Info";
import Child from "./Child";

const Category = ["All", "First-Tier", "Second-Tier"];

const Parent = () => {
  const [partsShown, setPartsShownAndCategory] = useState({
    partsArray: [...Info],
    category: "All"
  });
  const changeCategory = category => {
    const PartsShown = Info.filter(
      element =>
        element.category[1] === category || element.category[0] === category
    );
    setPartsShownAndCategory({
      ...partsShown,
      category: category,
      partsArray: PartsShown
    });
  };
  console.log(partsShown);
  return (
    <div>
      <div>
        {Category.map(element => (
          <button
            style={{ margin: 10 }}
            key={element}
            onClick={() => changeCategory(element)}
          >
            {element}
          </button>
        ))}
      </div>
      <div>{partsShown.category}</div>
      <div>
        {partsShown.partsArray.map(e => (
          <Child key={e.name} name={e.name} category={partsShown.category} />
        ))}
      </div>
    </div>
  );
};

export default Parent;

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

useStateフックを使用して小道具が変更されても、コンポーネントは再レンダリングされません

分類Dev

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

分類Dev

小道具が変更されても子コンポーネントは更新されません

分類Dev

コンポーネントの入力が変更されても小道具は更新されません

分類Dev

プロップデータが変更されても、Vueコンポーネントは更新されたデータを表示しません

分類Dev

Angular 2:データが別のコンポーネントで変更されても、クラスバインディングは更新されません

分類Dev

React-Redux:小道具が変更されてもコンポーネントは再レンダリングされませんでした

分類Dev

配列プロップが変更されても、Reactサブコンポーネントは再レンダリングされません

分類Dev

更新されたコンポーネントフィールドはUIで変更されません

分類Dev

shouldComponentUpdateがfalseに設定されている子コンポーネントは、小道具が変更されても更新されません

分類Dev

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

分類Dev

要素の値が変更されても、Syncfusionタブコントロールの値は更新されません

分類Dev

変更されたURLにリンクしますが、レンダリングされたコンポーネントにはリンクしません

分類Dev

URLが変更されても、ルートコンポーネントはレンダリングされません。カスタムwebpack付き

分類Dev

配列として渡された小道具を変更しても、React機能コンポーネントは再レンダリングされません

分類Dev

ルートパラメータが変更されても、コンポーネントは新しいデータでリロードされません

分類Dev

プロパティが変更されても、コンポーネントは再度レンダリングされません

分類Dev

要素が変更された後もリストは変更されません

分類Dev

角度のあるURLを変更しても、コンポーネントは再作成されません

分類Dev

React Stateに変更しても、機能コンポーネントの表示は更新されません

分類Dev

ルートコンポーネントの値が変更された場合、子コンポーネントのVue.jsprops値は更新されません

分類Dev

データが変更されても、Emberコンポーネントの計算関数は再実行されません

分類Dev

コンポーネントは更新されましたが、視覚的な変更はありません

分類Dev

JButtonは選択されたコンポーネントではありませんが、最近追加されたボタンの値に変更されます

分類Dev

親コンポーネントでpropが変更されている場合、子コンポーネントの入力は更新されません

分類Dev

親の状態が変更されると、コンポーネントは更新されません

分類Dev

React Routerで新しいコンポーネントをクリックしても、埋め込まれた子コンポーネントは変更されません

分類Dev

Reactフック-ルートが変更されてもuseState()の状態はリセットされません

分類Dev

オブジェクトがバックエンドで変更されても、バックボーンモデルは変更されません。

Related 関連記事

  1. 1

    useStateフックを使用して小道具が変更されても、コンポーネントは再レンダリングされません

  2. 2

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

  3. 3

    小道具が変更されても子コンポーネントは更新されません

  4. 4

    コンポーネントの入力が変更されても小道具は更新されません

  5. 5

    プロップデータが変更されても、Vueコンポーネントは更新されたデータを表示しません

  6. 6

    Angular 2:データが別のコンポーネントで変更されても、クラスバインディングは更新されません

  7. 7

    React-Redux:小道具が変更されてもコンポーネントは再レンダリングされませんでした

  8. 8

    配列プロップが変更されても、Reactサブコンポーネントは再レンダリングされません

  9. 9

    更新されたコンポーネントフィールドはUIで変更されません

  10. 10

    shouldComponentUpdateがfalseに設定されている子コンポーネントは、小道具が変更されても更新されません

  11. 11

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

  12. 12

    要素の値が変更されても、Syncfusionタブコントロールの値は更新されません

  13. 13

    変更されたURLにリンクしますが、レンダリングされたコンポーネントにはリンクしません

  14. 14

    URLが変更されても、ルートコンポーネントはレンダリングされません。カスタムwebpack付き

  15. 15

    配列として渡された小道具を変更しても、React機能コンポーネントは再レンダリングされません

  16. 16

    ルートパラメータが変更されても、コンポーネントは新しいデータでリロードされません

  17. 17

    プロパティが変更されても、コンポーネントは再度レンダリングされません

  18. 18

    要素が変更された後もリストは変更されません

  19. 19

    角度のあるURLを変更しても、コンポーネントは再作成されません

  20. 20

    React Stateに変更しても、機能コンポーネントの表示は更新されません

  21. 21

    ルートコンポーネントの値が変更された場合、子コンポーネントのVue.jsprops値は更新されません

  22. 22

    データが変更されても、Emberコンポーネントの計算関数は再実行されません

  23. 23

    コンポーネントは更新されましたが、視覚的な変更はありません

  24. 24

    JButtonは選択されたコンポーネントではありませんが、最近追加されたボタンの値に変更されます

  25. 25

    親コンポーネントでpropが変更されている場合、子コンポーネントの入力は更新されません

  26. 26

    親の状態が変更されると、コンポーネントは更新されません

  27. 27

    React Routerで新しいコンポーネントをクリックしても、埋め込まれた子コンポーネントは変更されません

  28. 28

    Reactフック-ルートが変更されてもuseState()の状態はリセットされません

  29. 29

    オブジェクトがバックエンドで変更されても、バックボーンモデルは変更されません。

ホットタグ

アーカイブ