在下面的示例沙箱中,我有一个父 React Router 渲染两个动画组件。
https://codesandbox.io/s/frame-motion-x-react-router-x-simple-tb1wg?file=/src/Routes.tsx
其中之一包含自己的嵌套链接——每个链接都有自己独立的成帧运动动画。当我单击路由链接时,我需要停止重新渲染嵌套开关的父级。我可以看到问题与在两个级别上使用切换键有关,但我不知道用什么替换它以停止重新渲染更高的组件层次结构。如果我删除键,它会破坏动画。
脚步:
选择关于。注意正确的进入和退出动画。选择联系人。注意正确的进入和退出动画。select Child 1. 注意父组件不需要的重新渲染 select Child 2. 注意父组件不需要的重新渲染 注意:
- 我添加了一些内联的 Math.random() 调用,它们在重新渲染时会发生变化
- 我已经包含了一个没有动画的顶级链接来演示嵌套组件按预期安装动画。但是它仍然在重新渲染子链接的选择。
location.pathname 键在选择深层嵌套链接时强制重新渲染。我可以用什么明智地替换它,以便它不会重新渲染?我试过删除它,但这会破坏动画。
谢谢