如何在 React 中将元素旋转 180 度?

How to rotate an element 180 in react?

如何根据状态变量 show<CaretUpFill/> 图标旋转为上下颠倒,但处于过渡状态?我在 _rafce。 (反应箭头函数组件)

目前,我正在渲染另一个图标<CaretDownFill/>,但看起来并不流畅。

我想让箭头看起来像这样:


        <div className="col-2 d-flex align-items-center">
          <small>{show ? <CaretUpFill /> : <CaretDownFill />}</small>
        </div>

使用 css 属性:

transform: rotate(180deg)

我看到您创建了两个元素 - <CaretUpFill /><CaretDownFill />

您现在所做的基本上是卸载 <CaretUpFill /> 并安装 <CaretDownFill /> 组件(反之亦然),但据我所知,不可能在两个单独的组件之间创建动画。

因此,我建议只使用一个组件,并使用上面的 css 属性 添加动画。

您可以使用 style prop to add a CSS transform to rotate the icon with a CSS transition 设置动画过渡。

const style = {
 transform: show ? 'rotate(180deg)' : '', 
 transition: 'transform 150ms ease', // smooth transition
}

<div className="col-2 d-flex align-items-center">
 <small><CaretUpFill style={style}/></small>
</div>

//if the icon doesn't have access to style props you can add it to the <small> element
<div className="col-2 d-flex align-items-center">
 <small style={style}><CaretUpFill /></small>
</div>

您也可以使用像 Framer Motion 这样的第三方库来为您的组件设置动画 - 但它对您的需求来说太过分了。

我推荐你 framer-motion 库 您可以旋转元素,并进行很多操作。 cssframer motion 有什么区别?运动其 js 组件,工作正常

这里是example

您可以在 CSS 中使用“旋转”功能,这是最简单的方法:

style={{ transform: 'rotate(180deg)' }}