我用createApiFn创建了一个API端点。我需要在localStorage中存储响应数据一段时间,然后从LS中获取它,而不是发出请求。当计时器超时时,用useQuery更新数据。
export const geoApi = createApi({
reducerPath: 'geoApi',
baseQuery: fetchBaseQuery({ baseUrl: GEO_URL }),
endpoints: (builder) => ({
getData: builder.query<any, void>({
query: () => 'geo-data',
}),
}),
});
export const { useGetDataQuery } = geoApi;
我可以让它在组件内逻辑(伪代码):
let geoData = null;
const cachedData = ls.get('GEO_DATA');
if (cachedData && dataIsUpToDate()) {
geoData = cachedData;
} else {
const res = useGetDataQuery();
geoData = res.data;
updateCachedData(geoData);
}
但我想在redux存储逻辑中进行。
1条答案
按热度按时间mutmk8jj1#
一段时间后,我建议使用钩子(修改它为您的情况):
以及惰性查询的用法: