Триггерный переход между компонентами - PullRequest
0 голосов
/ 12 сентября 2018

Предыстория

Я пытаюсь добиться такого же эффекта, как этот, с React: https://youtu.be/OnlF8sKQRsY. Поскольку я никогда не делал переходов и анимаций, я провел некоторое исследование о переходах и анимациях с React и нашел много способов делать это.

Я нашел библиотеку под названием Pose, https://popmotion.io/pose/,, которая выглядит действительно хорошо и предлагает множество способов создания переходов. Я использую это прямо сейчас, но я могу измениться, если кто-нибудь даст мне подсказку.

Что мне интересно

Как я могу запустить свой переход, когда я нахожусь на компоненте, который я хочу "отойти"? Я получил это прямо сейчас:

return (
  <React.Fragment>
    {!this.state.renderStartScreen && (
      <ExpressCheckout whereToEat={whereToEat} />
    )}
    {this.state.renderStartScreen && (
      <StartScreen
        hide={!renderStartScreen}
        startExpressCheckout={this.startExpressCheckout}
      />
    )}
  </React.Fragment>
);

StartScreen - это компонент, на котором я сейчас нахожусь, а ExpressCheckout - это компонент, на который я хочу перейти. renderStartScreen исходит из моего состояния, значение которого можно изменить с помощью кнопки в StartScreen.

В ExpressCheckout мне удалось создать переход, в котором мой пользовательский интерфейс перемещается слева направо с помощью Pose.

const Box = posed.div({
  left: { x: 1000 },
  right: {
    x: -500,
    transition: {
      duration: 1500
    }
  }
});


return (
    <Grid
    style={{ height: "100vh", backgroundColor: "#FFF", marginTop: "2em" }}
    >
    <Box className="box" pose={this.state.animate ? "right" : "left"}>
        <h1 style={{ textAlign: "center" }}>EXPRESS</h1>
    </Box>
    </Grid>
);

Но когда дело доходит до запуска перехода для перехода от StartScreen Я понятия не имею, как это сделать. И я даже не уверен, что я сейчас на правильном пути. Любая помощь очень ценится.

Спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

Прочитав много на собственных документах Pose, мне удалось решить мою проблему.

Так что это мой способ перехода между компонентами в React with Pose.

Надеюсь, это поможет кому-то вбудущее!

https://codesandbox.io/s/5x2mpq1ljl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...