【发布时间】:2021-01-14 06:14:15
【问题描述】:
我正在尝试在单击时向元素添加旋转。每次我想单击元素时,元素都应该旋转。我正在使用 CSS 变换属性旋转元素。 Bellow 是我的样式化组件:
const IconButtonWrapper = styled.div`
transform: rotate(0deg);
overflow: hidden;
transition: all 0.3s ease-out;
${({ rotate }) => rotate && `transform: rotate(360deg)`};
`;
我有渲染元素的 React 组件并有 onClick 事件:
const IconButtonContainer = () => {
const [rotate, setRotate] = useState(false);
const handleClick = () =>
setRotate(
(prevState) => ({ rotate: !prevState.rotate }),
() => console.log(this.state.rotate)
);
return (
<IconButtonWrapper rotate={rotate} onClick={handleClick}>
<IconButton />
</IconButtonWrapper>
);
};
当我第一次单击时,一切都按预期工作,但是当我第二次单击时,就不再工作了。我觉得我应该在转换后返回默认状态rotate: false,但是我该如何在样式化组件中做到这一点?
这是一个工作Sandbox的链接
【问题讨论】:
标签: javascript reactjs react-hooks styled-components