🍭

[TanStack Query] invalidateQueries で複数キーを一括対象にするやり方、間違えていた

に公開
  • これは駄目(はまった)
queryClient.invalidateQueries({ queryKey: ["CANDY", "COOKIE", "CHOCOLATE"] });

queryKey の型が string[] なので行けると思ったが、そんな仕様はなかった。
一括で invalidate したいなら、キーに接頭辞を設けて

useQuery({
    queryKey: ["GET-CANDY"],
      ...
useQuery({
    queryKey: ["GET-COOKIE"],
      ...
useQuery({
    queryKey: ["GET-CHOCOLATE"],
      ...

こう(ソース

queryClient.invalidateQueries({ queryKey: ["GET-"] });
  • それが嫌なら、以下の様に頑張る
queryClient.invalidateQueries({ queryKey: ["CANDY"] });
queryClient.invalidateQueries({ queryKey: ["COOKIE"] });
queryClient.invalidateQueries({ queryKey: ["CHOCOLATE"] });
  • 全てのキャッシュを一括で invalidate したいなら、こう
queryClient.invalidateQueries()

👴:「ドキュメントをよく読むべし」

プログラミングではまった時は散歩したり、音楽聴いたり、休憩する事が大事。(本件、散歩して戻ってすぐ気づいた。)

Discussion