Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.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
React native 在React Native中进行API调用之前,如何正确处理保存redux状态?_React Native_Redux - Fatal编程技术网

React native 在React Native中进行API调用之前,如何正确处理保存redux状态?

React native 在React Native中进行API调用之前,如何正确处理保存redux状态?,react-native,redux,React Native,Redux,因此,我认为我正确理解流程,但希望得到一些反馈 我正在构建一个React原生应用程序,它有一个用户填写并提交的多页表单。按下submit按钮后,我希望在使用所有表单数据调用API之前,将表单数据从最后一页保存到我的Redux状态 目前,这是我设置的流程: RN Component按钮按下可调用SetState以显示对话框和块UI 调度操作以使用表单数据更新Redux 状态更新和调用ComponentWillReceiveProps和新保存的表单数据 调度操作以启动API调用 处理并保存对Redu

因此,我认为我正确理解流程,但希望得到一些反馈

我正在构建一个React原生应用程序,它有一个用户填写并提交的多页表单。按下submit按钮后,我希望在使用所有表单数据调用API之前,将表单数据从最后一页保存到我的Redux状态

目前,这是我设置的流程:

  • RN Component按钮按下可调用SetState以显示对话框和块UI
  • 调度操作以使用表单数据更新Redux
  • 状态更新和调用ComponentWillReceiveProps和新保存的表单数据
  • 调度操作以启动API调用
  • 处理并保存对Redux的响应
  • 状态更新和调用ComponentWillReceiveProps再次与API响应
  • 如果出错,则显示错误消息对话框,如果成功,则导航到初始屏幕并显示成功消息

  • 我已经按原样工作了,但我想知道这是正确的处理流程还是有更好的首选解决方案/模式?

    我认为这是一种合理的方法,在redux用户中很常见


    对于每一个请求,我都希望有三组操作。类似于一个
    请求
    ,它将根据我需要的任何状态更改来减少redux存储;一个
    请求_成功
    ,它将使用来自服务器的数据更新存储;一个
    请求_错误
    ,它将在出现错误时执行相同的操作

    Max有一个很好的流程,另一个常见的方法是,每当用户输入表单值时(在每个单独的输入字段中),总是以状态存储所有表单值。然后,即使不完整,状态也随时可以使用。流程如下:


    用户在任何字段中键入->该字段的Action Creator->Action->Reducer saves to store(按钮Reducer可以触发您使用redux thunk异步查找的api分派)->状态可通过MapStateTrops随时使用。

    我实际上在我的请求中使用了这些确切的操作。让我质疑我的流程的是我的状态和组件之间的多次来回,我必须检查这些组件,以确保我调用的所有内容都是有序的。考虑到他们的生命周期和Redux的联系方式,这似乎是React的方式,但我对React&Redux的世界还是相当陌生的。嗯,我想这可能是我想要的,在提交流程中更干净一点。我猜每个输入字段的操作都会在onChangeText函数中调度?没错!为每个输入创建一个helper方法,然后在onChangeText中为每个输入调用它们。