所以我有这个手风琴布局react-router-dom
使用一种非常规的标记结构。
演示: https ://codesandbox.io/s/falling-violet-kvqn2?file=/src/Case.js
一个手风琴头的缩短代码:
<motion.div
layout
transition={transition}
key={item.id}
style={{
flex: isActive ? 1 : 0,
flexBasis: isActive ? null : 56,
...
}}
>
<NavLink
style={{
...
}}
exact={true}
to={item.url}
/>
<Route exact path={item.url}>
<motion.div
transition={{ delay: 1, ...transition }}
variants={{
open: { opacity: 1 },
collapsed: { opacity: 0 }
}}
initial="collapsed"
animate="open"
exit="collapsed"
layout
style={{
...
}}
>
<Home />
</motion.div>
</Route>
</motion.div>
我正在尝试framer-motion
在手风琴页面之间制作动画。就像下面的 gif
您可以看到它可以很好地为in
过渡设置动画。但是很难exit
在页面更改时为道具设置动画。单击手风琴标题,内容突然隐藏。看起来它正在从 DOM 中删除,而不考虑AnimateSharedLayout
or AnimatePresence
。我尝试添加exitBeforeEnter
道具,但它不起作用。
有任何想法吗?