У меня есть ряд кнопок, и я хочу изменить компонент Button, чтобы он «содержался» при нажатии, и «текст» в противном случае. Также при нажатии одной кнопки другие должны вернуться в нормальное состояние. Я попытался добавить обработчик onClick к компоненту кнопки и получить изменение состояния, но это очень запутанно. Так как я новичок в React, буду признателен за фрагмент кода, чтобы помочь. Ниже приведен код, который я пробовал, но получаю ошибку «Ошибка типа: невозможно получить свойство 'red' с неопределенной или нулевой ссылкой":
import React, { useState } from "react";
import Button from "@material-ui/core/Button";
let initialState = {
red: false,
blue: false,
green: false
};
export default function Home() {
const [initialState, setState] = useState();
const handleClick = (name) => event => {
switch(name){
case 'Red': initialState.red = true; break;
case 'Blue': initialState.blue = true; break;
case 'Green': initialState.green = true; break;
default: break;
}
setState(initialState);
}
return (
<div className="Home">
<Button onClick={handleClick("Red")} variant={initialState.red ? "contained" : "text"}> Red </Button>
<Button onClick={handleClick("Blue")} variant={initialState.blue ? "contained" : "text"} > blue </Button>
<Button onClick={handleClick("Green")} variant={initialState.green ? "contained" : "text"} > green </Button>
</div>
);
}