【发布时间】:2020-08-29 16:15:27
【问题描述】:
我正在使用 Framer Motion 和 React Router 来创建不同路线之间的动画。
我遵循了这个教程:https://www.youtube.com/watch?v=qJt-FtzJ5fo
我将尝试将问题总结为以下几点:
我正在使用 React Router v6 进行路由,我的应用程序上有多个嵌套路由和并行开关,这是一个简单的目录。
我为每个页面的 {content} 组件添加了过渡效果,并将 {footer} 和 {header} 组件留在不同的开关上,以防止它们产生动画。
我还将 location={location} key={location.pathname} 添加到 switch 组件,并将 exitBeforeEnter 添加到 AnimatePresence 包装器。
当访问一个目录的项目时,问题变得很明显,其路径是“es/:catalogid/:id”,它是动态的,并显示为上一页的覆盖。访问这些路由会影响上一个路由,位于“/es/”,并触发动画。
如何预防这个问题?
Framer Motion and React router 5: How do I prevent re-render of parent components with nested routes? 这几乎是完全相同的问题,但代码和框不起作用,解决方案也不起作用。
感谢阅读。
【问题讨论】:
-
我已经发布了与您的类似问题的答案here
标签: javascript reactjs react-router framer-motion