在使用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')来转换回来。如何强制它使用某个场景配置而不是模仿最后一个一个?提前谢谢。