React Router Transition 与手风琴布局

React Router Transition with Accordion layout

我正在用 React 重建我的网站。 我遇到了反应路由器和反应过渡组的问题。 在 React 路由器文档中有一个如何创建动画过渡的指南。但是它附加到某个布局:

nav
  - link a
  - link b
  - link c
container
  - body a
  - body b
  - body c

据我了解,这里的关键点是用 TransitionGroup、CSSTransition 和 Swtich 包裹所有主体。我或多或少知道它是如何工作的。 Transition Group 保留之前的路由主体并将其过渡出去。
但正如我已经说过的,这个解决方案附加到这个布局。
在我的网站上,我有这样的布局:

   - link a
   - body a (slides down on link click)
   - link b
   - body b (slides down on link click)
   - link c
   - body c (slides down on link click)

我的网站参考:https://dmws.me/
您能否为我推荐此布局的最佳做法?

好的,在多次尝试和失败之后,我找到了一个可行的解决方案。 关键点在 Router 文档 => 路由渲染方法 => children
https://reacttraining.com/react-router/web/api/Route/children-func
这是我的代码:

<div>
  <Link to="/">Home</Link>
  <Route
    exact
    path="/"
    children={({ match, ...rest }) => (
      <CSSTransition
        in={match}
        timeout={500}
        classNames="foo"
        mountOnEnter
        unmountOnExit
      >
        <Home />
      </CSSTransition>
    )}
  />

  <Link to="/about">About</Link>
  <Route
    path="/about"
    children={({ match, ...rest }) => (
      <CSSTransition
        in={match}
        timeout={500}
        classNames="foo"
        mountOnEnter
        unmountOnExit
      >
        <About />
      </CSSTransition>
    )}
  />
</div>