使用ReactDOM createPortal为react-transition-group设置动画

时间:2019-02-13 14:39:54

标签: reactjs modal-dialog react-hooks react-transition-group react-animations

我一直想弄清楚如何完成我认为很简单的事情(我知道...)

目标是非常最小可重用的模式组件,我可以使用触发按钮或w / e在某种HOC中对其进行动画处理。

我正在使用createPortal创建它,目标是在该门户的enter / exit 上添加一些简单的动画。

我已经使用GSAP来完成此工作,但是理想情况下,我希望它与SC一起使用,这样我就不必引入另一个动画库了。

对于我的一生,我只是无法让它与SC一起工作,并且很乐意有人将我指向正确的方向。

我在这里制作了一个沙箱:https://codesandbox.io/s/r44w9m4o5p使用GSAP来运行动画,虽然有点怪异,但它正朝着我要的方向发展。

而且,使用react-transition-group优于https://github.com/react-tools/react-move之类的东西吗?

1 个答案:

答案 0 :(得分:1)

您可以使用CSSTransition组件代替TransitionCSSTransition只会使用给定的动画时间切换相应的类名称:.*-enter.*-enter-active用于过渡,.*-exit.*-exit-active用于过渡。因此,您可以使用带有styled-components的CSS3属性来定义所有转换。

看看我的叉子:https://codesandbox.io/s/zz95v5103

我刚刚使用过渡样式扩展了您的Modal。请注意,扩展样式为requires className property for the component to be extended,所以我已将该属性添加到您的Modal组件中。