diff --git a/src/navigators/createKeyboardAwareNavigator.js b/src/navigators/createKeyboardAwareNavigator.js index 7de0809a..268547d5 100644 --- a/src/navigators/createKeyboardAwareNavigator.js +++ b/src/navigators/createKeyboardAwareNavigator.js @@ -1,7 +1,7 @@ import React from 'react'; import { TextInput } from 'react-native'; -export default Navigator => +export default (Navigator, navigatorConfig) => class KeyboardAwareNavigator extends React.Component { static router = Navigator.router; _previouslyFocusedTextInput = null; @@ -49,7 +49,9 @@ export default Navigator => } } - this.props.onTransitionStart && - this.props.onTransitionStart(transitionProps, prevTransitionProps); + const onTransitionStart = + this.props.onTransitionStart || navigatorConfig.onTransitionStart; + onTransitionStart && + onTransitionStart(transitionProps, prevTransitionProps); }; }; diff --git a/src/navigators/createStackNavigator.js b/src/navigators/createStackNavigator.js index 50453ca0..8f23ba3f 100644 --- a/src/navigators/createStackNavigator.js +++ b/src/navigators/createStackNavigator.js @@ -28,7 +28,7 @@ function createStackNavigator(routeConfigMap, stackConfig = {}) { // Create a navigator with StackView as the view let Navigator = createNavigator(StackView, router, stackConfig); if (!disableKeyboardHandling) { - Navigator = createKeyboardAwareNavigator(Navigator); + Navigator = createKeyboardAwareNavigator(Navigator, stackConfig); } return Navigator; diff --git a/src/views/StackView/StackView.js b/src/views/StackView/StackView.js index fc1fd7b3..ea2e1710 100644 --- a/src/views/StackView/StackView.js +++ b/src/views/StackView/StackView.js @@ -24,10 +24,14 @@ class StackView extends React.Component { screenProps={this.props.screenProps} navigation={this.props.navigation} descriptors={this.props.descriptors} - onTransitionStart={this.props.navigationConfig.onTransitionStart} + onTransitionStart={ + this.props.onTransitionStart || + this.props.navigationConfig.onTransitionStart + } onTransitionEnd={(transition, lastTransition) => { const { navigationConfig, navigation } = this.props; - const { onTransitionEnd } = navigationConfig; + const onTransitionEnd = + this.props.onTransitionEnd || navigationConfig.onTransitionEnd; if (transition.navigation.state.isTransitioning) { navigation.dispatch( StackActions.completeTransition({