Вот простое решение:
.App {
display: flex;
}
.box {
width: 150px;
height: 150px;
margin: 20px;
padding: 20px;
}
import React from "react";
import "./styles.css";
export default function App() {
const [bg, changeBGColor] = React.useState(1);
return (
<div className="App">
<div
className="box"
onClick={() => changeBGColor(1)}
style={{
backgroundColor: bg === 1 ? "black" : "red"
}}
/>
<div
className="box"
onClick={() => changeBGColor(2)}
style={{
backgroundColor: bg === 2 ? "black" : "yellow"
}}
/>
<div
className="box"
onClick={() => changeBGColor(3)}
style={{
backgroundColor: bg === 3 ? "black" : "green"
}}
/>
</div>
);
}
Вставьте это в Codesandbox , чтобы увидеть результат.
Здесь я даю, используя React hook, который принимает уникальный идентификатор. Если он установлен, то этот компонент будет black
.
Так что 1-й div
по умолчанию равен black
. Если я нажимаю 2-й div
, я изменяю значение bg
на 2
и в свойстве style
проверяю, выбран ли 2
, затем устанавливаю black
цвет. Точно так же я делаю то же самое для 3-го деления.