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

时间:2018-01-02 21:03:41

标签: react-native redux

所以我认为我正确理解了流程,但希望得到一些反馈。

我正在构建一个React Native应用程序,它具有用户填写并提交的多页表单。按下提交按钮后,我想将表格数据从最后一页保存到我的Redux状态,然后再使用所有表单数据进行API调用。

目前这是我设置的流程:

  1. RN组件按钮按下调用SetState以显示对话框和阻止UI。
  2. 使用表单数据更新Redux的调度操作。
  3. 状态更新并使用新保存的表单数据调用ComponentWillReceiveProps。
  4. 发起API调用的调度操作。
  5. 处理并保存对Redux的响应。
  6. 状态更新并使用API​​响应再次调用ComponentWillReceiveProps。
  7. 如果出现错误,则显示错误消息对话框,如果成功,则导航至初始屏幕并显示成功消息。
  8. 我有这样的工作原理,但我想知道这是否是正确的处理流程,或者这里是否有更好的首选解决方案/模式?

2 个答案:

答案 0 :(得分:1)

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

对于每个请求,我都希望有三组操作。类似于REQUEST的东西,它将减少我需要的任何状态更改的redux存储,REQUEST_SUCCESS然后将使用来自服务器的数据更新存储,以及REQUEST_ERROR将执行如果有错误,也一样。

答案 1 :(得分:1)

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

任何字段中的用户类型 - >该字段的Action Creator - >行动 - > Reducer保存到存储(按钮缩减器可以触发你正在寻找与redux thunk异步的api调度) - >通过mapStateToProps随时可以获得状态。