React Native Navigation разная анимация в зависимости от происхождения

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

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

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


person rago182    schedule 30.01.2020    source источник


Ответы (1)


Вы можете использовать эту библиотеку: rn-transitions. Итак, в соответствии с документами вы можете добавлять определенные переходы на определенные страницы, например:

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)
})

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

person Gaurav Roy    schedule 31.01.2020
comment
тоже проголосуйте, если вы нашли решение полезным :) спасибо - person Gaurav Roy; 31.01.2020