【发布时间】:2016-06-22 04:34:47
【问题描述】:
我有 Foo 对象,它有一个 Bars 数组。它们是数据库中单独的表,并且都是单独的 REST api 资源。
{
id: 1,
data: foo,
bars: [
{ fooId: 1, data: bar1 },
{ fooId: 2, data: bar2 }
]
}
我想创建类似于编辑器的表单,让我可以查看、编辑、添加和删除特定 Foo 的 Bar's。我发现我将 BarsComponent 嵌套在 FooComponent 中,并进一步嵌套 BarComponent 以保存对单个 Bar 的引用。该组件应该为 Bar prop 绘制双向绑定输入框和删除按钮。 BarsComponent 也应该呈现添加按钮。会有多个像 Bars 这样的孩子。
问题是保存按钮在 FooComponent 中,所以我必须在单击时知道发生了什么变化以及在哪里调度正确的 Redux 操作 与特定域对象.复杂性来自于用户能够在任意子组件中执行所有 CRUD 操作,而我需要上层的这些信息。
管理这种复杂性的批准方法是什么?是否可以为更改创建一个 Redux 状态,并在保存单击处理程序中扫描该状态并分派发现的更改?
【问题讨论】:
-
恕我直言,您不应该在需要时扫描状态,而是在每次内部状态发生变化时通过回调通知父母。然后父母总是得到发送“保存”请求所需的信息
标签: javascript rest design-patterns reactjs redux