Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Networking 反应API处理的本机最佳实践_Networking_React Native_Fetch - Fatal编程技术网

Networking 反应API处理的本机最佳实践

Networking 反应API处理的本机最佳实践,networking,react-native,fetch,Networking,React Native,Fetch,在过去的几个月里,我一直在React原生平台上工作,我需要实现一种可靠的方法来处理API调用。目前,我正在使用redux管理satate更改。显然,如果没有可用的网络,请求者必须重试几次,刷新oAuth令牌,等等 我想到了三种解决方案: 实现一个“管理器”类并处理其中的所有逻辑。我喜欢这个类,但我不知道是否可以将非组件连接到redux,因为它们没有状态 实施两个redux操作(请求、onResponse、onError…),这应该可以实现这一点 创建单独的redux操作,对每个调用使用它们自己的

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

我想到了三种解决方案:

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

  • 实施两个redux操作(请求、onResponse、onError…),这应该可以实现这一点

  • 创建单独的redux操作,对每个调用使用它们自己的抓取,而不是使用集中的组件

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

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


    感谢您抽出时间。

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

    您可以将react native的初学者工具包用于基本结构,例如:


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

    遵循以下教程中提到的模式(下面的youtube链接)

    在react native中执行redux时,每个人都使用此模式进行API调用


    本教程非常好,它是一个很棒的视频。

    Redux有两个功能强大的库,用于处理异步API调用。通过监听特定的操作,您可以在应用程序的后台处理重试、错误和缓慢的API调用


    Redux thunk或Redux saga可能是您想要使用的,这样您就不必管理组件如何处理API调用的所有工作。强烈建议您查看这些模块-有相当多的教程介绍如何使用这些模块。在我看来,手工操作不是一个好的最佳实践。

    实际上,这是一个非常简单的调用。我正在尝试管理至少+50个不同的API调用,因此我想到,在我发送的每个操作中创建一个“管理器”而不是一个fetch可能更有效。您如何在reducer之外侦听特定操作?我在这里猜测您为什么要这样做,但您可能想先看看redux saga,它将副作用处理为可以单独监听和触发的动作。如果是这种情况,请查看此问题:。这将有助于了解您的用例实际上是什么。