【问题标题】:react-navigation change duration of goBack transitiongoBack转换的react-navigation更改持续时间
【发布时间】:2019-03-12 19:09:54
【问题描述】:

希望这是一个相当简单的问题,但我在使用 react-navigation 在我的 react-native 应用程序中进行转换时遇到了问题。我想通过简单地删除此特定屏幕的 goBack 上的转换来解决这些问题。

有没有办法改变 goBack 的时长?

----编辑----

我当前的transitionConfig:

transitionConfig: ({ scene }) => {
  const params = scene.route.params || {};

  if (params.skipAnimation) {
    return {
      transitionSpec: {
        duration: 0,
        timing: Animated.timing,
      },
    };
  }

  return {};
},

当我希望我的过渡没有动画时,我执行 navigation.navigate 并将参数 skipAnimation: true 添加到导航调用中。这适用于导航转换,但是,goBack 转换观察到该持续时间,并且goBack() 函数不接受参数。因此,我正在寻找是否有办法强制 goBack 过渡的持续时间。

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

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

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

    createStackNavigator(
      {
      ....//your routes
      },
      {
        transitionConfig: () => {
          return {
            transitionSpec: {
              duration: 1000
            }
          };
        },
        initialRouteName: "Your first screen"
      }
    }
    

    编辑

    对于后退按钮,使用 backhandler..

    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
     }
    

    }

    【讨论】:

    • 您好,这似乎只会影响进入屏幕的过渡,但是当我从屏幕返回时,会出现正常的持续时间。
    • 是的,但是当使用navigation.navigate 时,如果动作是“表现得像正常的后退”,则无法为该动画设置持续时间。这就是我试图解决的问题。我会在上面输入一些代码来帮助
    猜你喜欢
    • 2018-12-01
    • 1970-01-01
    • 2011-05-09
    • 2011-06-20
    • 2021-11-26
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多