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