Я использую это руководство - https://medium.com/async-la/custom-transitions-in-react-navigation-2f759408a053 - чтобы начать изучение пользовательских переходов в реагирующей навигации. Но даже при копировании и вставке кода он, похоже, не работает. Это может быть устаревшее руководство.
Пробовал с использованием кода из нескольких мест, в том числе с реагирующей навигационной документацией по этому вопросу, ни одно из них не работает. Пробовал протоколировать текст в определенные моменты (прокомментирую в коде).
//App.js file, this navigator is part of another navigator
const LightNav = createStackNavigator(
{
Landing: { screen: LandingScreenLight },
Login: { screen: LoginScreenLight },
},
{
transitionConfig: transitionRightToLeft,
//Tried logging here, log shows when transitions starts and ends
},
)
//Other file for transition configs, it is imported in App.js
export const transitionRightToLeft = () => {
return {
transitionSpec: {
duration: 750,
easing: Easing.out(Easing.poly(4)),
timing: Animated.timing,
useNativeDriver: true,
},
screenInterpolator: sceneProps => {
//Tried logging here, nothing shows
const { layout, position, scene } = sceneProps
const thisSceneIndex = scene.index
const width = layout.initWidth
const translateX = position.interpolate({
inputRange: [thisSceneIndex - 1, thisSceneIndex],
outputRange: [width, 0],
})
return { transform: [ { translateX } ] }
},
}
}
Я ожидал перехода справа налево. Но получил значение по умолчанию снизу вверх.