首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >React- query,query不更新参数

React- query,query不更新参数
EN

Stack Overflow用户
提问于 2021-06-27 05:17:01
回答 1查看 413关注 0票数 0

我使用react-query库来获取数据。当用户发生变化时,如果以前的用户数据被自动删除&获取新数据,我会很高兴。

然而,这并没有发生,旧的userId被调用了几次,只有在1到2次重新关注应用程序之后,它才会用适当的新userId来获取数据。这里是钩子:当我在getData函数中记录一些信息时,我可以看到注销后旧的userId调用了它几次。

代码语言:javascript
运行
复制
export default function useData() {
    const {user} = useAuth();
    const queryClient = useQueryClient();
    useEffect(() => {
        queryClient.removeQueries('data')
        queryClient.invalidateQueries()
    }, [user]);
    return useQuery('data', () => getData(user!.uid), {
        enabled: !!user,
    })
}

有人知道当我的user改变时如何删除所有数据吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-27 13:36:06

查询的所有依赖项都应该在查询键中,因为当键更改时,react-query会自动重新获取。这也在文档here中。

在您的示例中,这意味着添加用户id:

代码语言:javascript
运行
复制
useQuery(
  ['data', user?.uid],
  () => getData(user!.uid),
  {
    enabled: !!user,
  }
)

为了清除旧的缓存条目,我可能会建议在查询上设置cacheTime: 0,这意味着一旦最后一个观察者卸载,它们就会被垃圾收集。手动调用queryClient.removeQueries也是一种选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68146305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档