我是Redux的新手,但不是React。而且我很难想象如何设计这个。
我的应用程序有一个复杂的嵌套数据结构 - 一个“记录”。单页表单允许用户编辑该记录的所有字段。编辑并不简单:我需要在用户提交表单时检查旧记录和任何新编辑之间的某些字段是否不同。如果存在差异,我需要执行一堆花哨的逻辑来正确更新记录。 (例如,用户对单个字段进行的编辑可能需要传播到记录的各个深层部分,需要重新生成并存储在记录中的派生数据列表等。)
我想:
建立这个的最佳方法是什么?我有基本架构。也就是说,我有一个Redux存储工作,可以进行简单的更新(比如将新数据推送到数组或替换整个记录)。但我不知道如何组织我的“花哨逻辑”和在哪里来做我需要的奇特逻辑。例如,这应该是逻辑:
提前感谢指向将简单的香草React表格与Redux混合的示例,以及如何构建此函数的提示。
答案 0 :(得分:0)
我的"Practical Redux" tutorial series有三个帖子,涵盖了这种行为:
我演示的方法是将正在编辑的项目复制到"草稿数据" Redux商店的部分,所有表单更改更新都适用于该草稿版本,然后具有reducer逻辑,以便在用户保存更新的表单时使用更改覆盖原始版本。如果需要,您当然可以对其进行修改,包括将草稿数据保持在组件状态。
一般来说,我个人会尝试将大部分实际逻辑移到组件之外,因为大部分逻辑应该独立于组件本身。杰克富兰克林最近有一篇关于extracting logic from React components的文章,这是这种心态的一个很好的例子。
另请注意,您可能需要考虑using selector functions to derive data,而不是明确地将其全部放在商店中。