【发布时间】:2020-11-16 03:04:18
【问题描述】:
似乎有人以多种不同的方式提出并回答了这个问题,但我看到的答案要么不适用于 Emotion,要么与 Emotion 相关的答案对我不起作用。我在@emtion/core@10.0.28 和@emtion/styled@10.0.27。
基本上我想在父组件悬停/活动/聚焦时将样式应用于子组件。父级是一个按钮,子级是一个可选图标。以下样式通过styled 语法添加到(父)按钮。
const iconWrapperStyles = (props) => {
return css`
${props.IconWrapper} {
width: ${iconSizeMedium};
height: ${iconSizeMedium};
margin-left: ${spacingSizeSmall};
color: ${textColor};
fill: ${textColor};
background: ${backgroundColor};
border-color: ${borderColor};
}
&:hover:not(:disabled),
&:focus:not(:disabled),
&:active:not(:disabled) ${props.IconWrapper} {
outline: none;
color: ${textColorHover};
fill: ${textColorHover};
background: ${backgroundColorHover};
border-color: ${borderColorHover};
}
`;
};
第一个样式块已成功应用。因此,乍一看,按钮和子图标的样式正确。但是,当您悬停/聚焦/激活按钮时,图标不会改变。我已经尝试了上面的实现,以及... + ${IconWrapper} 和... & ${IconWrapper};这三个对我来说都失败了。 Official docs 表示 & 应该可以工作。
【问题讨论】: