Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs React查询缓存不';无法在页面刷新时保持_Reactjs_React Query - Fatal编程技术网

Reactjs React查询缓存不';无法在页面刷新时保持

Reactjs React查询缓存不';无法在页面刷新时保持,reactjs,react-query,Reactjs,React Query,我想在useQuery请求成功后设置24小时缓存 但我一刷新页面,缓存就消失了。我之所以看到它,是因为每次在我的服务器上点击路由时,我都会在console.log中记录一条消息 如何防止这种行为并实现真正的缓存 代码如下: 从“react query”导入{useQuery}; 从“/config”导入{api}; const\u getUser=async()=>{ 试一试{ const res=api.get(“/get user”); 返回res; }捕捉(错误){ 返回错误; } };

我想在
useQuery
请求成功后设置24小时缓存

但我一刷新页面,缓存就消失了。我之所以看到它,是因为每次在我的服务器上点击路由时,我都会在console.log中记录一条消息

如何防止这种行为并实现真正的缓存

代码如下:

从“react query”导入{useQuery};
从“/config”导入{api};
const\u getUser=async()=>{
试一试{
const res=api.get(“/get user”);
返回res;
}捕捉(错误){
返回错误;
}
};
导出常量getUser=()=>{
const{data}=useQuery(“contact”,()=>\u getUser(){
缓存时间:1000*60*60*24,
});
返回{user:data&&data.data};
};
//然后在组件中:
const{user}=getUser();
返回(
你好{user?.name}

如果重新加载浏览器,缓存将消失,因为缓存位于内存中。如果需要持久缓存,可以尝试(实验性)persistQueryClient插件:

很酷,但据我所知,它基本上只是一个本地存储项。因此它根本不安全。有没有其他方法可以使缓存以安全的方式持久化?你想将其存储在哪里?安全的任何地方。目前,我在应用程序装载时调用api来检索用户信息。它包含敏感信息,如地理位置数据等。在搜索结果页面上,用户单击后可以在新选项卡中打开搜索结果。因此,如果他在两分钟内打开20个选项卡,服务器会产生很多费用。是的,我可以在服务器上使用Reddis并缓存数据,但在Heroku上会花费更多的钱。因此,我希望找到一个解决方案响应查询。我实际上对页面刷新很满意,我更担心的是在每个新标签上进行新的调用。前端没有安全的存储-您可以使用加密API加密数据。您所寻找的内容听起来像是广播插件在标签之间传输数据:这项功能看起来很棒!它暂时崩溃,所以我打开了一个react查询的github上的问题。但它看起来很有希望!谢谢!