希望这是一个相当简单的问题,但我在使用react-navigation的反应原生应用程序中进行转换时遇到问题。我想通过简单地删除goBack上针对此特定屏幕的转换来解决它们。
有没有办法改变goBack的持续时间?
- - 编辑 - -
我目前的transitionConfig:
transitionConfig: ({ scene }) => {
const params = scene.route.params || {};
if (params.skipAnimation) {
return {
transitionSpec: {
duration: 0,
timing: Animated.timing,
},
};
}
return {};
},
当我希望我的转换没有动画时,我会执行navigation.navigate
并将param skipAnimation: true
添加到导航调用中。这适用于导航转换,但是,goBack转换没有观察到该持续时间,并且goBack()
函数不接受参数。因此,我试图找出是否有办法强制goBack过渡的持续时间。
有一个特定的屏幕,我想简单地出现/消失没有任何动画。
您可以像这样将配置传递给导航器,
createStackNavigator(
{
....//your routes
},
{
transitionConfig: () => {
return {
transitionSpec: {
duration: 1000
}
};
},
initialRouteName: "Your first screen"
}
}
编辑:
对于后退按钮,使用反向手柄..
componentDidMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress');
}
handleBackPress = () => {
this.props.navigation.navigate('Your Screen'); //this will not push new screen if you have visited that screen and just behave like normal go back
}
}