反应导航改变了goBack过渡的持续时间

问题描述 投票:1回答:1

希望这是一个相当简单的问题,但我在使用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过渡的持续时间。

有一个特定的屏幕,我想简单地出现/消失没有任何动画。

react-native react-navigation
1个回答
0
投票

您可以像这样将配置传递给导航器,

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
 }

}

© www.soinside.com 2019 - 2024. All rights reserved.