😃
[TanStack Query] 再取得
概要
tanstackqueryを使ってデータを再取得する方法です。
主な使用用途は画面にすぐ反映したいときです。
コード
useQuery
を使うことでrefetch
が使えるようになります
const { data, refetch } = useQuery(['query'], getFunc, options)
const myFunc = async ()=> {
await refetch()
}
myFunc
を実行することで、data
が更新されます。ただこれの場合は必ずrefetch
を変数として持たないといけないので使い勝手が悪い場合があります。
にある通り、invalidateQueries
を使う。
const queryClient = useQueryClient()
const myFunc = async ()=> {
await queryClient.invalidateQueries('query')
}
こうすることで、別のhook
にuseQuery
が書かれたとしてもそのdata
が更新されます。
その他にもuseOptimisticMutation
という方法があります
を参考にしてください
Discussion