所以,我一直在尝试为我的React项目使用FramerMotion。我基本上想在div渲染时将高度从0设置为“auto”。我尝试了下面的代码,但是高度没有设置动画
<motion.div
initial={{ height: 0 }}
animate={{ height: "auto" }}
transition={{ duration: 0.5 }}
key={searchQuery?.length}
>
当我**用宽度替换高度时,动画效果很好,但是我不明白为什么高度没有被动画化。而且我也找不到任何关于这个的文档。
这是CodeSandbox Link的演示。
1条答案
按热度按时间0x6upsns1#
Fixed versinn
怎么了?
您的条件呈现逻辑出现在错误的位置,
AnimatePresence
仅在其直接子对象消失时才起作用。缺少
exit
属性key
prop必须是稳定的,不能是字符串的长度必须添加
overflow: hidden
,这样子节点才不可见最终代码: