将 wrapper-/proxy- 模式转换为 redux
Translating wrapper-/proxy- pattern to redux
我目前正在研究 reduxjs 作为即将开展的项目的可行框架。
在那里,我们从旧的解决方案迁移而来,该解决方案大量使用 proxy/wrapper 模式。
即:
有些模型故意保持哑巴 (pojo)。它们只携带数据。假设这些是任务
现在,这些任务被对象动态包装,对象添加了验证和更改跟踪等交叉功能。
现在:每当更改 属性 时,实际上,应用程序状态可能会发生 3 次更改。
例如:
- 任务的"title"属性已更改
- 由于此更改是通过 wrapper/proxy 完成的,因此它会检测到更改并
- a) 将 "haschagnes" 字段更新为 "true"
- b) 并且(可能)将验证错误添加到 "validationErrors" 列表
据我了解,在 Redux 中,每个动作只应处理一次并导致 1 个原子状态更改。
但是,在这种情况下,最多更改三个。
所以我的问题是:
是否可以将这种基于 wrapper/proxy- 模式的方法转换为 redux 风格的方法?
如果是这样,怎么办? (中间件、WrapperReducer、...?)
谢谢大家!
As far as I understand, in Redux, every action should only be handled once and lead to 1 atomic state change. However, in this case, it would be up to three changes.
这是一种误解。在 Redux 中,单个分派的操作可以由多个 reducer 处理。然后同时应用这些更改(即使是 1 个原子状态更改,多个属性已更改)。
据我所知,您的用例应该可以使用 Redux 实现。
我目前正在研究 reduxjs 作为即将开展的项目的可行框架。 在那里,我们从旧的解决方案迁移而来,该解决方案大量使用 proxy/wrapper 模式。
即:
有些模型故意保持哑巴 (pojo)。它们只携带数据。假设这些是任务
现在,这些任务被对象动态包装,对象添加了验证和更改跟踪等交叉功能。
现在:每当更改 属性 时,实际上,应用程序状态可能会发生 3 次更改。 例如:
- 任务的"title"属性已更改
- 由于此更改是通过 wrapper/proxy 完成的,因此它会检测到更改并
- a) 将 "haschagnes" 字段更新为 "true"
- b) 并且(可能)将验证错误添加到 "validationErrors" 列表
据我了解,在 Redux 中,每个动作只应处理一次并导致 1 个原子状态更改。 但是,在这种情况下,最多更改三个。
所以我的问题是: 是否可以将这种基于 wrapper/proxy- 模式的方法转换为 redux 风格的方法? 如果是这样,怎么办? (中间件、WrapperReducer、...?)
谢谢大家!
As far as I understand, in Redux, every action should only be handled once and lead to 1 atomic state change. However, in this case, it would be up to three changes.
这是一种误解。在 Redux 中,单个分派的操作可以由多个 reducer 处理。然后同时应用这些更改(即使是 1 个原子状态更改,多个属性已更改)。
据我所知,您的用例应该可以使用 Redux 实现。