React Query 的 useQuery 拿不到最新数据怎么办?
我在用 React Query 做一个用户信息页面,明明接口返回了新数据,但 useQuery 返回的 data 还是旧的,是不是缓存没刷新?我试过手动 invalidateQueries 也不生效。
奇怪的是,同样的逻辑在 Vue 里用 ref 和 axios 就没问题,比如下面这段:
<script setup>
import { ref } from 'vue'
import axios from 'axios'
const user = ref(null)
axios.get('/api/user').then(res => {
user.value = res.data // 这里能立刻拿到最新数据
})
</script>
React Query 是不是有什么默认缓存策略我没关掉?
invalidateQueries如果没生效,可能是配置或者使用上有些问题。你可以试试手动设置staleTime或者refetchInterval来强制刷新。直接用这个:
这样应该能解决数据不更新的问题。