首页 > 解决方案 > 在 React 状态更新后触发异步请求的最佳方法?

问题描述

export function useFetch < T > (
  url: string,
  useFullUrl ? : boolean,
  forceReload ? : any,
  method ? : string,
): AsyncState < T > {
  const openModal = useContext(ModalDispatchContext);

  return useAsync({
    promiseFn: useCallback(() => {
      return doFetch(url, {
          method
        }, undefined, useFullUrl, openModal)
        .then(unionToException)
        .then(r => parseResponse < T > (r));
    }, [url, useFullUrl, forceReload, method, openModal]),
  });
}

这个函数应该触发一个异步请求,处理响应,并在必要时打开一个模式。在某些情况下,如果外部状态由于用户交互或其他请求而发生更改,则应重新触发请求。因此,我添加forceReload了对此进行控制。

该功能工作正常,但 linter 向我展示了这一点:

React Hook useCallback 有一个不必要的依赖:'forceReload'。排除它或删除依赖数组 react-hooks/exhaustive-deps

当然,我可以禁用它,但我很想知道获得相同行为和快乐 linter 的正确方法是什么。

标签: javascriptreactjsreact-hooks

解决方案


推荐阅读