avoid unnecessary navigation completion dispatches (#3902)

This commit is contained in:
Eric Vicenti
2018-04-05 11:27:32 -07:00
parent b29b46fe8a
commit e2a239bf80

View File

@@ -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);
}}
/>
);