Объекты в React также обладают реактивностью. Это значит, что при любых изменениях объектов, эти изменения сразу же будут отображаться на экране.
Также, как и при работе с массивами, изменения
объектов следует производить иммутабельно,
то есть не изменяя исходного объекта. Давайте
посмотрим на примере. Пусть в стейте obj
хранится объект:
function App() {
const [obj, setObj] = useState({
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
});
return <div>
<span>{obj.prop1}</span>,
<span>{obj.prop2}</span>,
<span>{obj.prop3}</span>
</div>;
}
Давайте изменим значение какого-либо из свойств нашего объекта.
Для этого можно выполнить изменения в копии объекта:
const copy = Object.assign({}, obj);
copy.prop1 = '!';
setObj(copy);
А можно воспользоваться деструктуризацией:
setObj({...obj, ...{prop1: '!'}});
Сделайте 3
кнопки. Пусть первая кнопка
изменяет значение свойства prop1
,
вторая - prop2
, а третья - prop3
.