Вы можете сохранить состояние для каждой кнопки, например, так:
var [frontend, setFrontend] = useState({
isActive: true
});
var [backend, setBackend] = useState({
isActive: true
});
и затем установить его на клик:
<div>
<Button
onClick={e => {
setFrontend({ ...frontend, isActive: !frontend.isActive });
addOrRemove(formData.interests, e.target.value);
}}
value="Front-End Engineering"
className={frontend.isActive ? "noBackground" : "background"}
>
Front-End Engineering
</Button>
<Button
onClick={e => {
setBackend({ ...backend, isActive: !backend.isActive });
addOrRemove(formData.interests, e.target.value);
}}
value="Back-End Engineering"
className={backend.isActive ? "noBackground" : "background"}
>
Back-End Engineering
</Button>
</div>
Вы, вероятно, можете рефакторинг вышеупомянутого на основе остальных ваш код, но основная идея заключается в том, что вам нужно сохранить как минимум два состояния (оно может быть в том же useState
, как {first: true, second: true}
, по одному для каждой кнопки.
Вы не можете иметь общее состояние, в противном случае, когда вы измените одну кнопку, она изменит другую, потому что они будут использовать точно такое же состояние.
Вам нужно будет посмотреть, как структурировать ваше состояние в вашем конкретном приложении.