Я меняю свойство объекта в зависимости от условия. Я использую реакцию. Скажем, объект:
obj = {a: 4, b: 6, ...}
Теперь я хочу изменить obj.a
, если флаг истинен , чтобы я мог сделать что-то вроде ниже:
setState({...obj, a: flag === true ? 6 : obj.a})
Есть ли другой способ сделать это, я не хочу использовать тернарный оператор, как указано выше, потому что во вложенном объекте он выглядит неприятно.
Я также не хочу копировать объект и измените его, как показано ниже:
const obj_copy = {...obj}
if(flag) obj_copy = 4;
setState({...obj_copy))
Недавно я наткнулся на ?.
, который действительно полезен.
// we can change this
obj && obj.a === 'text' ? ... : ...
// into
obj?.a === 'text' ? ... : ...
Я ищу что-то подобное выше ... Просто для знаний цель есть ли способ сделать это?