Итак, у меня есть список, который был возвращен из запроса API (не важно), давайте назовем его list = [1,2,3,4,5,6,7];
Теперь, внутри render (), у меня есть что-то вроде
render(){
<Wrapper>
{list.map((i) => {
return (<Button id = {i} onClick = {this.customFunc.bind(this, i)} />)
}
</Wrapper>
}
Теперь у меня есть другой список, давайте назовем его list_check = [false...]
(для всех 7 элементов, перечисленных выше)
Предположим, что customFunc
меняет соответствующий идентификатор кнопки в list_check
с false на true.
например, если я нажал кнопку 1 (id = 1)
, тогда list_check
станет [false, true, false...]
** Теперь моя проблема: у меня есть 2 стилизованных компонента, Button
и Button_Selected
, какмогу ли я динамически переключаться между двумя стилизованными компонентами, чтобы при нажатии этой уникальной кнопки (изменить list_check[index] = true
) элемент стал Button_Selected
вместо Button
(весь список инициализируется как Button
, так как все элементы false
)
Просто чтобы прояснить: оба массива расположены в this.state
, и под двумя стилизованными компонентами я имею в виду
const Button = styled.div`
//styling here
`;
и
const Button_Selected = Button.extend`
//Small styling change to differentiate between selected and not selected
`;
редактировать: все ответы великолепны!Жаль, что я могу выбрать только один: (