我一直在使用 Flux 并且我真的很享受,但我有一点无法确定什么是最好的解决方案。我制作了一个处理订单列表的应用程序,列表中的每个订单分为不同的组件,这些组件可以具有读取/编辑模式(基本上变成一个小形式)并触发更新(订单中的产品列表,运输成本等)。

一切正常,除了我必须在订单更新时处理来自服务器的异常(例如,用户更改了其中一个产品数量但库存不足,我希望组件显示该特定产品的表单)该特定订单显示内联消息,因此我必须将错误消息传递给一个非常特定的组件。列表最多可以有 50 个订单,每个订单由 4-5 个可以触发更新的组件组成,所以我可以有大约 200 个可能对 ORDER_UPDATE_FAILED 操作感兴趣的组件。
我能想到的唯一两个选择是:
- 使组件同步调用 API 更新,以便在发生错误时检索它(更新的订单将作为 ORDER_UPDATED 操作的有效负载发送,并通过正常的 Flux 流:调度程序、存储、触发更新)。但我知道这有点打破了 Flux 的哲学
进行异步更新并创建一个 ORDER_UPDATE_FAILED,并且 Store 具有将转换放入订单部件组件可以识别的对象中的逻辑(考虑 orderID + errorID)。这会保持数据的单向循环和动作的异步性,但感觉太复杂和繁琐,并增加了一些问题:
a) 如果错误存储在 Store 中,则组件必须在错误不再有效时通知 store,这可能无法始终做到)。
b) 如果用户点击保存而不更改值并且组件进入“加载状态”,即使调用成功订单保持不变,因此不会重新渲染以退出“加载状态”。
有没有人找到更优雅的方法来解决这个问题?