我正试图使用Framer Motion使用AnimatePresence为路线设置动画,但由于某种原因,当一条路线退出并通过AnimatePreseness加载另一条路线时,我试图通过每条路线填充信息(通过表格收集个人信息作为注册步骤(的上下文不会持续存在。我不知道为什么会发生这种事。每次加载新路线时,我是否应该将状态作为道具?
<AnimatePresence exitBeforeEnter>
<Switch location={location} key={location.key}>
<Route exact path="/" component={LandingPage} />
...
</Switch>
</AnimatePresence>
我为每条路线中的每个组件添加了初始、动画和退出过渡。一旦一个组件退出并加载其他组件,存储在上下文中的状态就会重置。
这里的location
也来自react-router-dom
的const location = useLocation()
我想我想通了。将上下文提供程序放置在AnimatePresence
中会在中重新加载帧,从而导致刷新状态。