【发布时间】:2021-11-19 12:38:14
【问题描述】:
您好,我根本无法让 React Transition Group 工作。任何人都可以看看这个,看看为什么它不起作用?链接正确地拉入组件,但没有过渡。没有过渡进出,console.log 不会触发。我确实在控制台中收到了折旧警告,但一切都是最新的,我不确定这是否会导致它停止工作。我很茫然,所以任何帮助都将不胜感激。谢谢。
import * as React from 'react'
import {
HashRouter as Router,
Link,
Switch,
Route,
Redirect,
useParams,
useLocation
} from "react-router-dom";
import {TransitionGroup, CSSTransition} from "react-transition-group";
const TransGroup = () =>{
const location = useLocation();
return(
<>
<div className={"w-full h-full"}>
<Router>
<div className={"fill w-full"}>
<ul className={"nav overflow-hidden mb-8 flex "}>
<li><Link className={"bg-white p-8 m-8 text-black inline-block"} to={"/"}>Red</Link></li>
<li><Link className={"bg-white p-8 m-8 text-black inline-block"} to={"/purple"}>Purple</Link></li>
<li><Link className={"bg-white p-8 m-8 text-black inline-block"} to={"/blue"}>Blue</Link></li>
<li><Link className={"bg-white p-8 m-8 text-black inline-block"} to={"/yellow"}>Yellow</Link></li>
<li><Link className={"bg-white p-8 m-8 text-black inline-block"} to={"/pink"}>Pink</Link></li>
<li><Link className={"bg-white p-8 m-8 text-black inline-block"} to={"/aqua"}>Aqua</Link></li>
</ul>
</div>
</Router>
<div className={"fill content w-full h-full"}>
<TransitionGroup>
<CSSTransition
timeout={5000}
onEnter={() => {
console.log('FIRED!');
}}
classNames={{
appear: 'my-node-appear',
appearActive: 'my-node-active-appear',
appearDone: 'my-node-done-appear',
enter: 'my-node-enter',
enterActive: 'my-node-active-enter',
enterDone: 'my-node-done-enter',
exit: 'my-node-exit',
exitActive: 'my-node-active-exit',
exitDone: 'my-node-done-exit',
}}
key={location.key}
>
<Switch location={location}>
<Route exact path={"/"}>
<div className={"bg-red-500 text-white w-full h-16"}>
RED
</div>
</Route>
<Route exact path={"/purple"}>
<div className={"bg-lcnuk-other text-white w-full h-16"}>
PURPLE
</div>
</Route>
<Route exact path={"/blue"}>
<div className={"bg-blue-500 text-white w-full h-16"}>
BLUE
</div>
</Route>
<Route exact path={"/yellow"}>
<div className={"bg-lcnuk-other text-white w-full h-16"}>
YELLOW
</div>
</Route>
<Route exact path={"/pink"}>
<div className={"bg-white text-black w-full h-16"}>
PINK
</div>
</Route>
<Route exact path={"/aqua"}>
<div className={"bg-black text-white w-full h-16"}>
AQUA
</div>
</Route>
<Route path={'*'}>
<div>Not Found</div>
</Route>
</Switch>
</CSSTransition>
</TransitionGroup>
</div>
</div>
</>
)
}
export default TransGroup
【问题讨论】:
标签: reactjs react-router css-transitions react-transition-group reactcsstransitiongroup