在反应中,如果我有一个状态的对象,比如:
{flags:
loading: false,
visible: true
}
然后调用setState({flags:{loading:true}});
,它只是更新加载标志,还是替换整个标志对象?
答案 0 :(得分:4)
setState
浅显地将当前状态与您传递给它的新状态合并。如果合并
{
flags: {
loading: false,
visible: true
}
}
带
{
flags: {
loading: true
}
}
整个flags
属性将被覆盖并替换。
但如果您在初始状态(与flags2
处于同一级别)中有另一个名为flags
的属性,则不会受到影响。