Her*_*man 5 reactjs react-router-dom react-transition-group framer-motion
我有以下代码:
import React from "react";
import { BrowserRouter, Route, NavLink } from "react-router-dom";
import { AnimatePresence, motion } from "framer-motion";
import Hi from "./Hi";
import Something from "./Something";
import "./App.css";
const App = () => {
return (
<BrowserRouter>
<AnimatePresence>
<NavLink to="/">Hi</NavLink>
<br />
<NavLink to="/something">Something</NavLink>
<hr />
<Route path="/" exact={true} key="1">
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
transition={{ duration: 2 }}
key="hi"
>
<Hi />
</motion.div>
</Route>
<Route path="/something" exact={true} key="2">
<motion.div
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
exit={{ opacity: 0 }}
key="something"
transition={{ duration: 2 }}
>
<Something />
</motion.div>
</Route>
</AnimatePresence>
</BrowserRouter>
);
};
export default App;
Run Code Online (Sandbox Code Playgroud)
它应该有做淡入动画每当<Hi/>和<Something/>安装,以及淡出时,他们卸载。安装动画发生,但另一个没有。这两种成分是动画效果开始前卸载,并与所有的动画库出现问题:framer-motion,react-transition-group,等。
小智 0
不确定您是否仍在寻找答案,但我通过将标志添加到 解决了类似的exitBeforeEnter问题AnimatePresence。
所以...
//...
<AnimatePresence exitBeforeEnter>
<NavLink to="/">Hi</NavLink>
<br />
<NavLink to="/something">Something</NavLink>
<hr />
//...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |