1

我注意到,如果我连续两次对同一个 API 端点进行 GET 调用,那么之前的结果似乎会被缓存。这导致我的 React 组件的逻辑出现问题,它是一个多页向导。

我这样定义我的 API 请求:

  const [{ data, isLoading, isError }, userNameDoFetch] = useFetch(
    null,
    { }
  )

然后用户可以在输入元素中输入用户名,并像这样检查它的存在:

  const handleBlur = (event) => {
    const propName = event.target.name;
    const propValue = event.target.value;

    if (propValue.length > 0) {
        setIsFetching(true);
         userNameDoFetch( `${API_ROOT()}account_management/users/name/${propValue}` );
      }
    }
  }

然后我有一个useEffect处理从服务器返回的数据。它是这样开始的:

  useEffect(() => {
    setIsFetching(false);
    ...

问题是,useEffect如果说,用户标签回到用户名字段然后再次标签出来,则不会调用。这设置isFetchingtrue,这会禁用Next我的向导中的按钮,使用户被困在该页面上。

关于如何解决这个问题的任何想法?

4

0 回答 0