【问题标题】:React Native best practices for API handling用于 API 处理的 React Native 最佳实践
【发布时间】:2017-06-13 11:17:20
【问题描述】:

过去几个月我一直在研究 React Native 平台,我需要实现一种可靠的方法来处理我的 API 调用。目前我正在使用 redux 来管理状态更改。显然,如果没有可用的网络,请求必须重试几次,刷新 oAuth 令牌等。

我想到了三个解决方案:

  1. 实现一个“管理器”类并处理其中的所有逻辑。我喜欢这个,但我不知道是否可以将非组件连接到 redux,因为它们没有状态。

  2. 实现几个 redux 操作(request、onResponse、onError...)应该可以解决问题。

  3. 创建单独的 redux 操作,每个调用都有自己的提取,而不是使用集中式组件。

我应该实施什么解决方案?

我遇到的另一个问题是,如果发生网络错误,即使我再次调用请求并且我不再能够在调用者方法中编程行为,承诺也会得到解决。有什么解决方法吗?

感谢您的宝贵时间。

【问题讨论】:

    标签: networking react-native fetch


    【解决方案1】:

    Redux 有两个功能强大的库,旨在处理异步 API 调用。这些允许您在应用后台处理重试、错误和缓慢的 API 调用,只需侦听特定操作即可。

    Redux-thunk 或 Redux-saga 是您可能想要使用的,因此您不必完成管理组件如何处理 API 调用的所有工作。强烈建议您查看这些 - 那里有很多教程描述了如何使用这些模块。手动执行此操作不是 IMO 的最佳最佳实践。

    【讨论】:

    • 你将如何监听减速器之外的特定动作?
    • 我在这里猜你为什么要这样做,但你可能想先看看 redux-saga,它将副作用作为你可以单独监听和触发的动作来处理。如果是这种情况,请查看此问题:stackoverflow.com/questions/34949597/…。将有助于了解您的用例实际上是什么。
    【解决方案2】:

    用于 api 处理。您可以拥有一个文件,其中包含所有功能(导出)和所需的其他设置,因此您只需导入所需的方法。

    您可以使用 react-native 的入门工具包作为基本结构,例如:https://github.com/futurice/pepperoni-app-kit

    它提供了我们新项目设置所需的大部分内容。

    【讨论】:

      【解决方案3】:

      按照下面教程中提到的模式(下面的youtube链接)

      https://www.youtube.com/watch?v=9mlwjZL3Fmw

      在 react-native 中遵循 redux 时,每个人都使用这种模式进行 API 调用。

      教程真的很好,视频很棒。

      【讨论】:

      • 其实这是一个非常简单的调用。我正在尝试管理至少 +50 个不同的 API 调用,所以我想到在我调度的每个操作中创建一个“管理器”而不是获取可能更有效。
      猜你喜欢
      • 1970-01-01
      • 2016-07-25
      • 2023-03-07
      • 2021-02-03
      • 2020-03-01
      • 2019-04-25
      • 1970-01-01
      • 2013-08-25
      • 2019-10-10
      相关资源
      最近更新 更多