javascript - 在 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 的正确方法是什么。
解决方案
推荐阅读
- google-kubernetes-engine - 设置了 Cloud DNS 的 GKE
- html - Kindle 云阅读器文本提取
- python - 如何将字符串更改为 python 类型
- php - stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:14090086:SSL 例程:ssl3_get_server_certificate:
- algorithm - 在标记元素列表中,如何有效地找到其标记包含我指定的所有标记的标记元素?
- appium - 在 AWS device-farm 上实施生物识别测试需要帮助
- reactjs - 测试 react 元素的子元素是否没有越过父轮廓
- javascript - 如何在 ReactJS 中按类别 id 过滤结果
- c - 如何让 MinGW GCC 识别 size_t 的 %zu 格式说明符?
- python - Keras Load Model.h5 在本地运行良好,但在部署到 heroku 时失败