我们有以下情况:
我们的数据在json存储区(couchdb)中。因此我们在状态下有一个json对象,它对应于商店中的特定json文档。
例如:带有属性列表的文章:
{name: 'TV', attributes: {'width': 111, 'height': 123}, ... }
现在,用户通过UI添加了一个新属性:weight。
因此,要更新redux存储,将调度一个动作,并且在reducer中,attributes属性获得一个新项。
由于ouchdb是基于文档的存储,因此我们需要向其发送完整的文档。
为此,我们可以在操作中获取当前json,添加新属性,将其发送到沙发,然后使用另一个操作再次分派新项目以进行状态更新。这意味着我们实际上有2倍的相同代码添加了新元素。
或者我们可以在更新后在化简器中获取json,然后更新商店。但这实际上不属于reducer
另一个选项可能在componentDidUpdate ...中,但是像reducer这样的组件不负责更新数据。
那么将新的更新后的json发送到沙发上的地方是?
我们有以下情形:我们的数据位于json存储(couchdb)中。因此我们在状态下有一个json对象,它对应于商店中的特定json文档。例如:带有...列表的文章]]
从Redux开始并执行一些POST请求(部分更新状态)时,我实际上遇到了相同的问题。
[有多个选项,这些选择都不是正确的方法。虽然,我建议坚持使用一种方法使事情更简单和一致。