【发布时间】:2019-05-06 15:10:56
【问题描述】:
只是想知道如何使用样式组件为活动项目添加背景颜色?几乎像 jQuery 的添加/删除类一样工作。
我在我的状态下定义了一个活动布尔变量,如下所示:
constructor(props) {
super(props);
this.state = {
placeholder: '',
active: false,
};
this.handleClick = this.handleClick.bind(this);
this.handleImageError = this.handleImageError.bind(this);
}
handleClick 函数可以像这样将 true active 变为 true:
handleClick() {
this.setState({ active: true });
}
在我的渲染函数中,我有这样的 HTML:
<MemberStyled className="member-item" active={active} onClick={this.handleClick}>
<MemberStyled.avatar src={imgSource || placeholder} onError={this.handleImageError} />
<MemberStyled.user>{name}</MemberStyled.user>
</MemberStyled>
在 member.styles.js 文件中,我有这样的样式:
const MemberStyled = styled.li`
background-color: ${props => props.active ? red : 'transparent'};
`;
现在,所有点击的项目都将颜色变为红色。如何在样式组件中仅使活动项目具有红色背景?
非常感谢!
【问题讨论】:
-
非常感谢!它有效