Реагируйте на Native Navigation разные анимации в зависимости от происхождения - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь заставить работать следующее. Есть 3 экрана:

  1. Экран A
  2. Экран B
  3. Экран C

Я хочу другую анимацию, когда A переходит на C, чем когда B переходит на C. Кто-нибудь знает как это сделать?

1 Ответ

1 голос
/ 31 января 2020

Вы можете использовать эту библиотеку: рН-переходы . Так что в соответствии с документами вы можете добавить определенные c переходы к конкретным c страницам, таким как:

import { fromLeft, zoomIn, zoomOut } from 'react-navigation-transitions'

const handleCustomTransition = ({ scenes }) => {
  const prevScene = scenes[scenes.length - 2];
  const nextScene = scenes[scenes.length - 1];

  // Custom transitions go there
  if (prevScene
    && prevScene.route.routeName === 'ScreenA'
    && nextScene.route.routeName === 'ScreenB') {
    return zoomIn();
  } else if (prevScene
    && prevScene.route.routeName === 'ScreenB'
    && nextScene.route.routeName === 'ScreenC') {
    return zoomOut();
  }
  return fromLeft();
}

const PrimaryNav = createStackNavigator({
  ScreenA: { screen: ScreenA },
  ScreenB: { screen: ScreenB },
  ScreenC: { screen: ScreenC },
}, {
  transitionConfig: (nav) => handleCustomTransition(nav)
})

надеюсь, это поможет. не стесняйтесь сомнений

...