Axios 的自定义挂钩

Custom Hooks for Axios

我已经通过 axios 调用创建了一个自定义挂钩(称为 useApi)。此自定义采用 api 端点(url)和方法类型作为输入,return 数据如下所述:

const [ data, fetchError, isLoading ]= useApi(`/users`,'POST');

现在,在功能组件或 useEffect 中调用此挂钩可以正常工作。并且按照钩子的规则

Don’t call Hooks inside loops, conditions, or nested functions.

如果我尝试在事件侦听器中调用此挂钩,它不会起作用,这符合挂钩规则。我可以 return 方法回调,然后 运行 它。

我正在实现一个 react-native 项目的前端架构,并得出结论,只有自定义挂钩不足以 api 处理,我需要一个包装器来包装所有的 axios 方法,以便支持 api 集成到我的 react-native 应用中。

如果有人能帮助我得出结论并帮助我决定是否只有自定义挂钩适用于 api 集成,那就太好了。

一个常见的模式是 return 从你的钩子中创建一个函数,然后你可以 运行 任何你喜欢的地方。您可以使用现有挂钩的输入,以及 return 执行 axios 调用的 get 函数。这个函数可以运行在循环内部,在useEffect等

根据您的需要,您可以考虑使用 react-query 库。它被构建为 API 调用的抽象层,并处理缓存、轮询和各种其他重复性任务。我敢肯定有很多库涵盖了这个领域,但我们在 React Native 项目中使用 react-query,到目前为止我很喜欢它。