【发布时间】:2019-10-28 20:25:51
【问题描述】:
我有一个这样的反应组件 -
const MyComponent = () => (
<ContainerSection>
<DeleteButtonContainer>
<Button
theme="plain"
autoWidth
onClick={() => {
onDeleteClick();
}}
>
Delete
</Button>
</DeleteButtonContainer>
</ContainerSection>
);
我只想在用户将鼠标悬停在ContainerSection 上时才显示DeleteButtonContainer。他们都是styled-components。我找不到任何仅使用 css 的方法(使用父项在子项中的悬停状态),所以我使用了类似这样的东西 -
const MyComponent = ()=>{
const [isHoveredState, setHoveredState] = useState<boolean>(false);
return (<ContainerSection onMouseEnter={() => setHoveredState(true)} onMouseLeave={() => setHoveredState(false)}>
<DeleteButtonContainer style={{ display: isHoveredState ? 'block' : 'none' }}>
<Button
theme="plain"
autoWidth
disabled={!isHoveredState}
onClick={() => {
onDeleteClick();
}}
>
Delete
</Button>
</DeleteButtonContainer>
</ContainerSection>)
};
现在我想在移动设备上始终显示DeleteButtonContainer,因为它没有悬停功能。我知道我总是可以纠正更多的 JS 来实现这一点,但我想使用 CSS 来做到这一点,如果可能的话,我想完全删除状态。
那么有没有办法只使用样式化组件而不编写自定义 JS 来实现这一点?
【问题讨论】:
标签: javascript css reactjs styled-components