使用Redux和React管理实体的工作副本(可编辑形式)的最佳模式是什么?我通常使用以下架构来管理表单:
Redux
^ |
Dispatch | | Provides
Actions | | list of entities
| V
<EntitiesContainerComponent />
^ |
| |
Identity | | Maps to
| V
<Entitycomponent entity={e}
doSave={(e) => this.handleSave(e)} />
Redux以normalized形式存储域实体。实体容器从Redux接收特定实体类型的列表
通过调度GET_ENTITIES_FOO
进行装载,并且可以通过调度POST_ENTITY_FOO
将该实体作为有效负载的持久化持久对象。
仍然,实体容器将实体列表映射并呈现为实体组件(窗体)。实体组件被注入身份实体和容器回调(特别是保存)作为道具。实体组件使用回调作为其身份实体的功能。
此外,实体组件在安装期间以其内部状态复制身份实体。表单操作会更改实体组件(实体工作副本)的内部状态。验证逻辑还验证工作副本。最后,实体组件将使用工作副本调用save回调函数,该副本最终将通过容器组件到达Redux。
这是一个好的模式,还是我应该探索将Redux实体转换为表单的其他模式?