setState 是替换键中的所有现有数据,还是只更新需要更新的内容?

Does setState replace all existing data in a key, or just update what needs updating?

在反应中,如果我有一个状态中的对象,例如:

{flags:
   loading: false,
   visible: true
}

然后调用setState({flags:{loading:true}});,它只是更新加载标志,还是替换整个标志对象?

setState 将当前状态与您传递给它的新状态浅层合并。如果合并

{
  flags: {
      loading: false,
      visible: true
  }
}

{
  flags: {
      loading: true
  }
}

整个flags属性将被覆盖和替换。

但如果你有另一个 属性 叫 say flags2 在初始状态(与 flags 处于同一级别),那将不会受到影响。