我有几个使用用户详细信息的组件。
由于用户详细信息不会经常更改,因此我只想获取它们一次。
一种方法是 -
const twentyFourHoursInMs = 1000 * 60 * 60 * 24
defaultOptions: {
queries: {
refetchOnWindowFocus: false,
refetchOnmount: false,
refetchOnReconnect: false,
retry: false,
staleTime: twentyFourHoursInMs,
},
},
})
Run Code Online (Sandbox Code Playgroud)
另一种方法是在基本组件中获取数据一次,并使用其他组件中的缓存数据queryClient.getQueryData('user')
哪种方式会更好?
我正在关注我在 YouTube 上看到的一个使用React Query的示例,但我似乎无法让缓存按预期工作。在我的应用程序中,每次都会获取数据。不确定我是否遗漏了一些明显的东西。这是我的代码:https : //codesandbox.io/s/eager-faraday-nhmlb?file=/src/App.js
单击“行星”和“人物”按钮时,我可以看到每次来回切换时发出的网络请求。我希望看到它至少在缓存仍处于活动状态的一段时间内对每组数据发出一次请求。
有谁知道可能有什么问题?