У меня есть такой компонент реагирования -
const MyComponent = () => (
<ContainerSection>
<DeleteButtonContainer>
<Button
theme="plain"
autoWidth
onClick={() => {
onDeleteClick();
}}
>
Delete
</Button>
</DeleteButtonContainer>
</ContainerSection>
);
Я хочу показывать DeleteButtonContainer
только тогда, когда пользователь наводит курсор на ContainerSection
. Оба они 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?