React Fade组件为什么首次渲染时没有动画效果?
我在用CSSTransition做Fade组件时遇到个怪问题,切换显示状态时只有第二次才会触发淡入动画,第一次直接显示出来。代码检查了好几遍没发现问题:
import { CSSTransition } from 'react-transition-group';
function FadeComponent({ show }) {
return (
淡入文字
);
}
CSS写的是.fade-enter和.fade-exit的透明度变化,已经确认类名匹配。尝试过把initialState设成’false’也没用,控制台也没报错,就是第一次切换时完全没有过渡效果,直接出现元素。
可以试试这样改你的代码:
关键点就是加了一个
isMounted的状态,在组件真正挂载后再允许动画触发。这样第一次切换时也会有动画效果了。另外再确认下CSS部分,确保
.fade-enter和.fade-enter-active这些类名都写对了,特别是transition属性有没有定义好。