【发布时间】:2020-10-11 17:24:35
【问题描述】:
我想更改所选组件的背景和文本颜色。
我使用了样式组件并创建了 isSelected,但是不知道如何使用 isSelected 更改背景和文本颜色。
如何切换它的值?
我有这样的组件:
const Container = styled.div`
width: auto;
cursor: pointer;
:hover {
background-color: #ccc;
border-radius: 5px;
}
${({ isSelected }) =>
isSelected &&
`
background-color: #b4b4b4`}
`;
const SomeText = styled.span`
color: #000000
${({ isSelected }) =>
isSelected &&
`
color: #ffffff`}
`;
const MessageRoom = ({ item, onClick }) => {
return (
<Container onClick={onClick}>
<SomeText>{item.text}</SomeText>
</Container>
)
};
上面的组件是列表项,下面是父组件,如:
return (
<div>
{list.map(item => {
return <MessageRoom item={item} key={item.id} onClick={onItemClick}/>;
})}
</div>
);
任何帮助将不胜感激。
编辑:
const MessageRoom = ({ item, onClick }) => {
const [isSelected, setIsSelected] = useState(false);
return (
<Container isSelected={isSelected} onClick={onClick}>
<SomeText isSelected={isSelected}>{item.text}</SomeText>
</Container>
)
};
【问题讨论】: