Оба работают в этом случае, но вам не нужно это использовать. Просто установка состояния будет в порядке:
this.setState({active: false})
Но позвольте мне объяснить, что если у вас есть вложенный уровень состояний, например:
state = {
foo: {
a: 1,
b: 2,
c: 3
}
}
И когда вам нужно обновить только состояние c в foo, вам нужно объединить это состояние следующим образом:
this.setState({
...this.state.foo,
c: 'updated value'
})
Итак, синтаксис распространения объединяет объект с более поздним объектом. Это похоже на Object.assign .