В первом варианте убрал скобки, со скобками не работает:
handleCardClick = () => {
this.setState({
done: !(this.state ?? this.state.done),
})
}
Получилось так:
handleCardClick = () => {
this.setState({
done: !this.state.done ?? this.state.done,
})
}
Мне кажется самая понятная конструкция получилась.
Через опциональную цепочку пока не догоняю почему он работает. А в третьем варианте слишком сложная конструкция получается логическое И плюс тернарник. В моем же варианте получается возьми или это или другое , другое или это. Правильно вообще написал и понимаю эту конструкцию?)