强制navigator.pop()使用特定的sceneConfig

时间:2017-07-27 17:18:36

标签: reactjs user-interface react-native

在使用React Native Navigator时,我遇到了一个问题,即默认情况下它只支持以下sceneConfigs:

Navigator.SceneConfigs.PushFromRight (default)
Navigator.SceneConfigs.FloatFromRight
Navigator.SceneConfigs.FloatFromLeft
Navigator.SceneConfigs.FloatFromBottom
Navigator.SceneConfigs.FloatFromBottomAndroid
Navigator.SceneConfigs.FadeAndroid
Navigator.SceneConfigs.HorizontalSwipeJump
Navigator.SceneConfigs.HorizontalSwipeJumpFromRight
Navigator.SceneConfigs.VerticalUpSwipeJump
Navigator.SceneConfigs.VerticalDownSwipeJump

考虑到我需要一个没有转换的场景配置,我已经根据FadeAndroid转换创建了以下自定义sceneConfig:

const noTransition = {
  ...Navigator.SceneConfigs.FadeAndroid,
  gestures: {},
  defaultTransitionVelocity: 1000,
  animationInterpolators: {
    into: buildStyleInterpolator(invisible),
    out: buildStyleInterpolator(invisible)
  }};

通过这样做,每当我想将某些东西推入导航器时,我都会调用noTransition场景配置:

gotoProfile: function () {
  _navigator.push({
    id: 'profile',
    sceneConfig: noTransition
  });
},

我的"回来"用户单击应用程序中的后退箭头时的功能如下:

back: function () {
  if (_navigator.getCurrentRoutes().length > 1) _navigator.pop();
},

问题是:当我点击应用程序中的后退箭头时,我希望Navigator.pop()发生类似向后运动的转换。但是,Navigator.pop()方法通过恢复最后使用的转换(在大多数情况下是' noTransition')来转换回来。如何强制它使用某个场景配置而不是模仿最后一个一个?提前谢谢。

0 个答案:

没有答案