React Router Transition с макетом Аккордеон - PullRequest
0 голосов
/ 27 февраля 2019

Я перестраиваю свой сайт с помощью 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/
Не могли бы вы предложить мне лучшие практики для этого макета?

1 Ответ

0 голосов
/ 28 февраля 2019

Хорошо, после многих испытаний и неудач у меня есть рабочее решение.Ключевой момент был в документации по Маршрутизатору => Методы визуализации маршрута => 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...