ReactJSとReduxでリスト内のアイテムをフィルタリングするにはどうすればよいですか?

vbernal

要素のリストをレンダリングしてページネーションを行っています。リストの各ページには3つの要素が含まれています。

ユーザーが必要な製品をフィルタリングできる ``フィールドを挿入しています。フィルタは機能しています。問題は、現在のページのアイテムのみをフィルタリングしていることです。

たとえば、リストの2ページにある商品を検索しても、その商品は表示されません。

これを修正する方法を教えてください。

多くのファイルを使用しているので、コードをcodesandboxに入れます

前もって感謝します。

ザカリー・ハーバー

発生した問題は、データをフィルタリングする前にページ付けしていたことでした。

そこで、先に進み、コードを変更してフィルタリングしてからページ付けしました。useMemo大きなリストでフィルタリングを行うとコストがかかる可能性があるためフックを使用してフィルタリングしました。

  const [searchPerfume, setSearchPerfume] = useState("");
  // Filter the data based on the search string
  const filteredPerfumes = useMemo(() => {
    return data.filter((perfume) =>
      perfume.name.toLowerCase().includes(searchPerfume.toLowerCase())
    );
  }, [data, searchPerfume]);

  // Paginate the data
  const [currentPage, setCurrentPage] = useState(1);
  const [perfumesPerPage, setPerfumesPerPage] = useState(3);
  const currentPerfumes = filteredPerfumes.slice(
    (currentPage-1) * perfumesPerPage,
    currentPage * perfumesPerPage
  );
  const pages = Math.ceil(filteredPerfumes.length / perfumesPerPage);
  // Reset current page if there are fewer pages than the current page
  useEffect(() => {
    if (currentPage > pages) {
      setCurrentPage(1);
    }
  }, [currentPage, pages]);
  // Get the range of pages in an array
  const pageNumbers = Array(pages)
    .fill(null)
    .map((val, index) => index + 1);

作業コードサンドボックス

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

フィルタリングされたリスト内のアイテムの数を取得するにはどうすればよいですか?

分類Dev

タプルのアイテムでタプルのリストをフィルタリングするにはどうすればよいですか?

分類Dev

テンプレート内の配列内のアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

パンダのリストに基づいてDataFrameのアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

レルムReactNativeのリストに含まれるアイテムでフィルタリングするにはどうすればよいですか?

分類Dev

テキストフィルタリング後にアイテムの量を表示するにはどうすればよいですか?

分類Dev

Microsoft Graphで作成者によってSharePointリストアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

IQueryable <T>のネストされたアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

Djangoでフィルタリングするときにアイテムの順序を保持するにはどうすればよいですか?

分類Dev

ReactJs React-Reduxでリストの1つのアイテムのみが作成または更新されたときに、アイテムのリスト全体の再レンダリングを停止するにはどうすればよいですか?

分類Dev

アイテムベースの協調フィルタリングをより高速に実行するにはどうすればよいですか?

分類Dev

ラムダを使用してリスト内のフィルタリングされたアイテムのインデックスを取得するにはどうすればよいですか?

分類Dev

ボタンをクリックしたときにアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

tornadofxアプリ内のobservableArrayListにバインドされたアイテムのフィルタリングを可能にするためにビューをリファクタリングするにはどうすればよいですか?

分類Dev

列をそれ自体の行アイテムと比較してフィルタリングするにはどうすればよいですか?

分類Dev

Rのデータフレーム内のリストの値をフィルタリングするにはどうすればよいですか?

分類Dev

Reactの画面に表示されている配列のアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

あるアイテムのリストを別のアイテムのリストからフィルタリングするにはどうすればよいですか?

分類Dev

Reactで1つのアイテムタイプをフィルタリングして除外するにはどうすればよいですか?

分類Dev

Vaadinのテキストフィールドにリアルタイムバリデーターを作成するにはどうすればよいですか?

分類Dev

グループ内のアイテムをパンダのリターンブール値と比較するにはどうすればよいですか?

分類Dev

別の配列にあるアイテムに基づいて配列をフィルタリングするにはどうすればよいですか?

分類Dev

リスト/単一アイテムテンプレートのEmberルーティングを構成するにはどうすればよいですか?

分類Dev

Javascriptを使用して、選択したアイテムのみを表示するように順序付けされていないリストをフィルタリングするにはどうすればよいですか?

分類Dev

forループを使用してリスト内のすべてのアイテムのボタンを作成するにはどうすればよいですか?

分類Dev

数値の配列からngRepeatのアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

angleJSの配列から特定のアイテムをフィルタリングするにはどうすればよいですか?

分類Dev

リスト内のアイテムがフィールドのどこかに表示されるかどうかに基づいて、データフレームから列を削除するにはどうすればよいですか?

分類Dev

カスタムクリックアンドドラッグを角度で行うときに、デフォルトのカーソルスタイル(テキストセレクター)を無効にするにはどうすればよいですか?

Related 関連記事

  1. 1

    フィルタリングされたリスト内のアイテムの数を取得するにはどうすればよいですか?

  2. 2

    タプルのアイテムでタプルのリストをフィルタリングするにはどうすればよいですか?

  3. 3

    テンプレート内の配列内のアイテムをフィルタリングするにはどうすればよいですか?

  4. 4

    パンダのリストに基づいてDataFrameのアイテムをフィルタリングするにはどうすればよいですか?

  5. 5

    レルムReactNativeのリストに含まれるアイテムでフィルタリングするにはどうすればよいですか?

  6. 6

    テキストフィルタリング後にアイテムの量を表示するにはどうすればよいですか?

  7. 7

    Microsoft Graphで作成者によってSharePointリストアイテムをフィルタリングするにはどうすればよいですか?

  8. 8

    IQueryable <T>のネストされたアイテムをフィルタリングするにはどうすればよいですか?

  9. 9

    Djangoでフィルタリングするときにアイテムの順序を保持するにはどうすればよいですか?

  10. 10

    ReactJs React-Reduxでリストの1つのアイテムのみが作成または更新されたときに、アイテムのリスト全体の再レンダリングを停止するにはどうすればよいですか?

  11. 11

    アイテムベースの協調フィルタリングをより高速に実行するにはどうすればよいですか?

  12. 12

    ラムダを使用してリスト内のフィルタリングされたアイテムのインデックスを取得するにはどうすればよいですか?

  13. 13

    ボタンをクリックしたときにアイテムをフィルタリングするにはどうすればよいですか?

  14. 14

    tornadofxアプリ内のobservableArrayListにバインドされたアイテムのフィルタリングを可能にするためにビューをリファクタリングするにはどうすればよいですか?

  15. 15

    列をそれ自体の行アイテムと比較してフィルタリングするにはどうすればよいですか?

  16. 16

    Rのデータフレーム内のリストの値をフィルタリングするにはどうすればよいですか?

  17. 17

    Reactの画面に表示されている配列のアイテムをフィルタリングするにはどうすればよいですか?

  18. 18

    あるアイテムのリストを別のアイテムのリストからフィルタリングするにはどうすればよいですか?

  19. 19

    Reactで1つのアイテムタイプをフィルタリングして除外するにはどうすればよいですか?

  20. 20

    Vaadinのテキストフィールドにリアルタイムバリデーターを作成するにはどうすればよいですか?

  21. 21

    グループ内のアイテムをパンダのリターンブール値と比較するにはどうすればよいですか?

  22. 22

    別の配列にあるアイテムに基づいて配列をフィルタリングするにはどうすればよいですか?

  23. 23

    リスト/単一アイテムテンプレートのEmberルーティングを構成するにはどうすればよいですか?

  24. 24

    Javascriptを使用して、選択したアイテムのみを表示するように順序付けされていないリストをフィルタリングするにはどうすればよいですか?

  25. 25

    forループを使用してリスト内のすべてのアイテムのボタンを作成するにはどうすればよいですか?

  26. 26

    数値の配列からngRepeatのアイテムをフィルタリングするにはどうすればよいですか?

  27. 27

    angleJSの配列から特定のアイテムをフィルタリングするにはどうすればよいですか?

  28. 28

    リスト内のアイテムがフィールドのどこかに表示されるかどうかに基づいて、データフレームから列を削除するにはどうすればよいですか?

  29. 29

    カスタムクリックアンドドラッグを角度で行うときに、デフォルトのカーソルスタイル(テキストセレクター)を無効にするにはどうすればよいですか?

ホットタグ

アーカイブ