上一篇我们把图跑起来了,也知道了节点返回什么、边怎么连。
但只要图稍微复杂一点,一个问题马上就会冒出来:
同一个状态字段,被不同节点更新时,到底该怎么处理?
最简单的情况,是一个节点接着一个节点顺序执行。
比如第一个节点写入 draft,第二个节点再改 draft。这种时候,后面的值覆盖前面的值,通常没什么问题。
真正麻烦的是下面两种场景:
results如果没有一套明确的合并规则,状态就会变得很不稳定。
有些值会被覆盖,有些值会丢,有些值又应该累加却没累加。
这一篇要讲的就是这件事:Reducer 本质上是字段级的合并策略。