From e2a239bf802892afed5854149485039b51628b35 Mon Sep 17 00:00:00 2001 From: Eric Vicenti Date: Thu, 5 Apr 2018 11:27:32 -0700 Subject: [PATCH] avoid unnecessary navigation completion dispatches (#3902) --- .../src/views/StackView/StackView.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/react-navigation/src/views/StackView/StackView.js b/packages/react-navigation/src/views/StackView/StackView.js index f6dcfcf3..952c1020 100644 --- a/packages/react-navigation/src/views/StackView/StackView.js +++ b/packages/react-navigation/src/views/StackView/StackView.js @@ -25,14 +25,19 @@ class StackView extends React.Component { navigation={this.props.navigation} descriptors={this.props.descriptors} onTransitionStart={this.props.onTransitionStart} - onTransitionEnd={(lastTransition, transition) => { + onTransitionEnd={(transition, lastTransition) => { const { onTransitionEnd, navigation } = this.props; - navigation.dispatch( - StackActions.completeTransition({ - key: navigation.state.key, - }) - ); - onTransitionEnd && onTransitionEnd(lastTransition, transition); + if ( + transition.navigation.state.isTransitioning && + !lastTransition.navigation.state.isTransitioning + ) { + navigation.dispatch( + StackActions.completeTransition({ + key: navigation.state.key, + }) + ); + } + onTransitionEnd && onTransitionEnd(transition, lastTransition); }} /> );