diff --git a/Libraries/CustomComponents/Navigator/Navigator.js b/Libraries/CustomComponents/Navigator/Navigator.js index 6589e7d78..dc9c99ca6 100644 --- a/Libraries/CustomComponents/Navigator/Navigator.js +++ b/Libraries/CustomComponents/Navigator/Navigator.js @@ -922,7 +922,19 @@ var Navigator = React.createClass({ }, pop: function() { - this._popN(1); + if (this.state.transitionQueue.length) { + // This is the workaround to prevent user from firing multiple `pop()` + // calls that may pop the routes beyond the limit. + // Because `this.state.presentedIndex` does not update until the + // transition starts, we can't reliably use `this.state.presentedIndex` + // to know whether we can safely keep popping the routes or not at this + // moment. + return; + } + + if (this.state.presentedIndex > 0) { + this._popN(1); + } }, /**