Animate Presence 退出不工作成帧器运动

Mr *_*aaD 17 exit unmount reactjs framer-motion

动画存在退出道具不起作用

我做错了什么?

<AnimatePresence>
      <motion.div
        initial={{ opacity: 0, x: "-100%" }}
        animate={{ opacity: 1, x: 0 }}
        exit={{ opacity: 0, x: "100%" }}>
        <h1>Head</h1>
      </motion.div>
</AnimatePresence>
Run Code Online (Sandbox Code Playgroud)

固定的!!

通过将这两个道具添加到 Switch 来修复它:

从“react-router-dom”导入{useLocation};

const 位置 = useLocation();

<Switch location={location} key={location.pathname}>
//Routes
</Switch>
Run Code Online (Sandbox Code Playgroud)

Jos*_*onn 26

这不起作用的原因是您必须显式指定要有条件渲染的子项的键。

文档参考:https ://www.framer.com/api/motion/animate-presence/#unmount-animations

在你的情况下,这是<motion.div>

我这里有一些 AnimatePresense 的例子

  • 第二个沙箱帮助了我!谢谢@Joshua Wootonn (2认同)
  • 伙计,你确实让我摆脱了头痛,非常感谢 (2认同)
  • 感谢您@SaroGFX 的发言。CodeSandbox 自动更新成帧器运动到最新版本,而不自动更新反应版本。由于 Framer Motion 7 需要 React 18,因此沙箱已被破坏。我刚刚降级了成帧器运动,它们又开始工作了。注意:这与 framer-motion 7 中的任何重大更改都不冲突,因此如果您使用的是最新版本,那么这应该不是问题 (2认同)