🍭
[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