我正在使用axios.get()来调用我的一个组件中的api端点。我需要能够封装这个端点调用,这样我就可以通过从几个不同的组件调用它来重用这个实现。在React项目中构建这种类型的实现通常可以接受的方式是什么?例如,将相关的api调用分组到与src/component相同级别的src/services目录中的js文件中,这通常是可以接受的吗?
发布于 2020-02-06 22:44:26
可以创建一个utils或服务目录并对相关的API调用进行分组。但是,重要的是要记住,对于异步请求,您需要考虑调用api服务实用程序的组件可能会被卸载。如果处理不当,这可能会导致警告或错误。处理这个问题的一种可能方法是,如果组件仍然通过useEffect钩子中的状态变量进行挂载跟踪,则只执行回调函数。
更现代的react方法可能是利用钩子和react上下文进行数据处理。例如,您可以创建一个带有useReducer钩子的DataContext来获取或推送数据。(参见https://reactjs.org/docs/context.html)
发布于 2020-02-06 22:52:35
有很多方法可以做到这一点。
我会向你推荐使用钩子。它更有用,并且保证了真实的方式。
3年前,我生活在Redux范式中,每次编写猴子代码时都会考虑一致的Redux存储状态。
请尝试一下这个react-async包。
https://stackoverflow.com/questions/60096999
复制相似问题