В настоящее время я изучаю использование стилевых компонентов в React и испытываю трудности с его реализацией.
У меня есть ряд кнопок (определенных как div). Когда кнопка нажата, я хочу, чтобы ее фон заполнился определенным цветом. Все остальные кнопки должны оставаться «невыбранными». Вот что у меня пока так:
import React from 'react';
import styles from 'styled-components';
const ButtonsRow = styles.div`
display: flex;
justify-content: space-evenly;
`;
const Button = styles.div`
cursor: pointer;
:hover {
background-color: gray;
}
background-color: ${props => props.selected ? 'red' : 'none'};
`;
class ButtonsContainer extends React.Component {
handleClick = (e) => {
// add 'selected' prop to the clicked <Button>?
}
render() {
return(
<ButtonsRow>
<Button onClick={this.handleClick}>People</Button>
<Button onClick={this.handleClick}>Members</Button>
<Button onClick={this.handleClick}>Games</Button>
</ButtonsRow>
);
}
}
export default ButtonsContainer;
Если нажата кнопка I, я думаю, что хочу дать ей «выбранный» реквизит. Таким образом, если у него есть опора, он заменит цвет фона. Если у него его нет, значит, у него нет цвета фона. Я думал, что, возможно, я мог бы использовать состояние, чтобы сделать это, но если бы я должен был сделать это, я думаю, что это применимо к каждой кнопке. Спасибо за любую помощь.