Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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
Reactjs 整合React、Redux、Redux Form和React传奇的最佳方式?_Reactjs_React Redux_Redux Form_Redux Saga - Fatal编程技术网

Reactjs 整合React、Redux、Redux Form和React传奇的最佳方式?

Reactjs 整合React、Redux、Redux Form和React传奇的最佳方式?,reactjs,react-redux,redux-form,redux-saga,Reactjs,React Redux,Redux Form,Redux Saga,我已经阅读了所有我能找到的关于如何一起使用react saga和redux表单的内容。我正处于十字路口,需要一些建议 这就是我在这里的结局 我选择使用Redux是因为它对我的应用程序来说很有意义,而且我没有任何问题 从Thunk切换到Sagas 我开始处理异步api调用,用数据填充我的应用程序。我使用了大量的数据网格,我不确定延迟会在哪里结束,因为有些查询非常复杂 当我开始研究动作创造者和数据背景调查的方法时,我意识到Sagas将比Thunk容易得多 我做出了改变,我很高兴。操作创建者正在处理a

我已经阅读了所有我能找到的关于如何一起使用react saga和redux表单的内容。我正处于十字路口,需要一些建议

这就是我在这里的结局

我选择使用Redux是因为它对我的应用程序来说很有意义,而且我没有任何问题

从Thunk切换到Sagas

我开始处理异步api调用,用数据填充我的应用程序。我使用了大量的数据网格,我不确定延迟会在哪里结束,因为有些查询非常复杂

当我开始研究动作创造者和数据背景调查的方法时,我意识到Sagas将比Thunk容易得多

我做出了改变,我很高兴。操作创建者正在处理api调用中的任何错误,该操作创建者将更新所有api调用的redux状态容器。通过基于这些状态更改填充模式来显示错误

介绍Redux表单

一旦我开始将表单数据发布回api,事情就变得有趣起来,我意识到我即将编写大量代码来处理整个Redux。Redux表单简化了事情,因为它有一个状态容器,用于所有与表单相关的内容,并使在客户端设置和验证表单变得非常容易

在提交表单之前,Redux表单将处理配置中的所有表单状态

我正在使用一个连接到我创建的Redux存储的容器组件来保存api请求的状态

表单是容器的子组件,该容器通过处理其所有状态的Redux表单连接到Redux

当表单提交时,我会调用一个Redux操作,这反过来又会调用一个saga来发布数据

sagaapi调用的结果是在Redux中调度成功或失败操作。我正在将一个对象传递到包含状态(成功/失败)的api状态,一个包含任何错误的错误对象,以及一个返回对象,我可以在其中返回像刚刚创建的记录的id之类的内容

当来自api的错误与通信相关时,这种方法很有效。因为我正在更新api状态,所以我的高级应用程序组件可以访问它,这样我就可以为与表单数据本身无关的错误触发模式

但是,当我开始思考如果客户端验证缺少一些逻辑,我将如何处理可能发生的任何字段错误时,我迷失了方向

在我当前的设置中,这些错误将出现在api状态对象上。我可以将它们放入一个模式中,但是表单本身不会有客户端错误处理

Redux表单可以处理直接绑定到表单字段的服务器端验证,但只能从承诺和我所知道的情况来看,通过动作创建者返回承诺即使不是不可能,也是很困难的

我可以在onSubmit函数中写一个承诺,但我必须直接调用saga函数,而不是通过动作触发它。这是可以接受的模式吗

我想我可以从这个故事中触发一个动作来填充我的api状态值,但这似乎是倒退

基本上,我更喜欢用一种方式(通过我的api状态容器)处理通信错误,用另一种方式处理表单字段数据错误(back-throu-redux表单及其错误处理程序),我不确定该朝哪个方向走

我看了一个模块redux form saga,它可以将承诺直接返回到表单,因此在api调用后使用redux form错误处理,但我不确定是否能够同时触发api状态操作

我想我不会继续下去,也许会把事情搞得太复杂,我会征求那些不得不处理类似事情的人的意见

我擅长使用异步后台调用来填充数据网格,但当我必须将数据发回api时,我希望确保用户在收到响应之前不能执行任何其他操作

这是该应用程序中许多内容的第一部分,因此我想创建一个有意义、易于复制、可靠且易于遵循的设计模式

有什么建议吗

将帮助您整合React、redux、redux传奇。除此之外,集成redux表单应该是简单的。React样板文件使用社区中所有当前的最佳实践来创建一个可用于生产的应用程序