【问题标题】:react-query: Refetch if and only if there is no errorreact-query:当且仅当没有错误时重新获取
【发布时间】:2020-11-06 04:29:21
【问题描述】:

在我的根组件上,我使用了使用查询来获取用户详细信息。 但问题是在我注册或登录之前,它重新访问了太多次。结果我什至无法顺利填写注册/登录表格。

有什么办法,只有回调函数没有返回错误才会重新获取?

这是我试过的

const FetchCurrentUser = async () => {
  setAuthToken(localStorage.token);
  const {
    data: { user },
  } = await axios.get(`${process.env.API_URL}/api/users/auth`);

  return user;
};

const RouterController = () => {
  const { data: updatedUser, isLoading, error: fetchError } = useQuery(
    "user",
    FetchCurrentUser,
   
  );
}

【问题讨论】:

    标签: javascript reactjs caching state-management react-query


    【解决方案1】:

    我不确定我是否正确理解了这个问题。我假设您正在尝试获取用户数据,但如果失败,您不想重试,对吗?

    React Query 有一些对新用户来说可能很棘手的默认值。来自文档:

    失败的查询会静默重试 3 次,在捕获错误并将错误显示到 UI 之前会出现指数退避延迟。

    模式详情请查看Important Defaults

    您还可以通过在useQuery 挂钩上将enabled 配置属性设置为false 来停用自动请求,并使用refetch 函数手动触发请求。

    【讨论】:

    • refetch方法被调用时,有没有办法阻止获取?
    猜你喜欢
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2021-12-08
    • 2018-12-31
    • 1970-01-01
    相关资源
    最近更新 更多