react-animation-components的<Fade>组件失效,元素opacity始终为0求助
解决react-animation-components中组件元素不显示的问题
你遇到的情况是opacity: 0的初始状态。结合你的代码,给出几个可行的修复方案:
1. 修正key的位置
React要求循环渲染的直接子元素必须携带唯一key,你的代码把key加在了RenderLeader上,但map的直接子元素是<Fade>,这会导致React无法正确识别每个动画组件,进而无法触发状态切换。把key移到<Fade>组件上:
2. 显式启用挂载时动画
默认情况下<Fade>只会在in属性从false变为true时触发动画,如果组件挂载时in就为true,需要添加appear属性来触发初始淡入效果:
3. 确保的in状态正确
<Stagger>的in属性控制所有子动画的触发时机,若它的in未设置为true,子元素的动画不会启动,因此需要显式指定<Stagger in={true}>。
修改后的完整代码:
function RenderLeaders({leaders}) { return ( <Stagger in={true}> {leaders.map((leader) => ( <Fade key={leader.id} in={true} appear> <RenderLeader leader={leader} /> </Fade> ))} </Stagger> ) }
额外排查点
- 检查
react-animation-components的版本,旧版本可能存在嵌套动画的兼容问题,建议升级到最新稳定版; - 确认
RenderLeader组件没有设置display: none或其他会隐藏元素的样式,避免和动画样式冲突。
内容的提问来源于stack exchange,提问作者bigdg14
相关产品推荐
相关产品推荐

