Задать вопрос
Ответы пользователя по тегу React
  • React - анимация смены роута. Как задавать разные анимации исходя из URL?

    3Lvcz
    @3Lvcz
    Фронтенд разработчик
    Прежде всего, необходимо понимать, как у тебя меняется роут (стало больше сегментов или меньше).

    Чтобы это можно было вычислить, нужно сравнивать предыдущий роут с текущим при апдейтах компонента.

    Вариант #1: изменить SFC на класс и воспользоваться componentWillReceiveProps. Соответственно там трекаешь, как изменился роут и пишешь в setState.

    Вариант #2: мемоизация каким-нибудь HOC'ом, например так
    const withPrevProps = (Component) => {
        let prevProps = null;
        return (props) => {
            const component = (
                <Component
                    {...props}
                    prevProps={prevProps}
                />
            );
            prevProps = props;
            return component;
        };
    };
    
    const App = withRouter(withPrevProps(({ location, prevProps }) => (
      ...
    )));


    В обоих случаях, в рендере выставляешь классы в соответствии с тем как у тебя изменился роут.

    <CSSTransition
        classNames={'slide-' + slideDirection}
     ...


    Живой пример не делал, но кажется это должно подойти
    Ответ написан
    1 комментарий