[ReactNative] Navigator fix BackAndroid warning on iOS

This commit is contained in:
Eric Vicenti 2015-04-16 10:26:25 -07:00
parent b3a2d6c574
commit e382894ef3
1 changed files with 6 additions and 5 deletions

View File

@ -35,6 +35,7 @@ var NavigatorNavigationBar = require('NavigatorNavigationBar');
var NavigatorSceneConfigs = require('NavigatorSceneConfigs'); var NavigatorSceneConfigs = require('NavigatorSceneConfigs');
var NavigatorStaticContextContainer = require('NavigatorStaticContextContainer'); var NavigatorStaticContextContainer = require('NavigatorStaticContextContainer');
var PanResponder = require('PanResponder'); var PanResponder = require('PanResponder');
var Platform = require('Platform');
var React = require('React'); var React = require('React');
var StaticContainer = require('StaticContainer.react'); var StaticContainer = require('StaticContainer.react');
var StyleSheet = require('StyleSheet'); var StyleSheet = require('StyleSheet');
@ -398,22 +399,22 @@ var Navigator = React.createClass({
this._emitDidFocus(this.state.routeStack[this.state.presentedIndex]); this._emitDidFocus(this.state.routeStack[this.state.presentedIndex]);
if (this.parentNavigator) { if (this.parentNavigator) {
this.parentNavigator.setHandler(this._handleRequest); this.parentNavigator.setHandler(this._handleRequest);
} else { } else if (Platform.OS === 'android') {
// There is no navigator in our props or context, so this is the // There is no navigator in our props or context, so this is the
// top-level navigator. We will handle back button presses here // top-level navigator. We will handle back button presses here
BackAndroid.addEventListener('hardwareBackPress', this._handleBackPress); BackAndroid.addEventListener('hardwareBackPress', this._handleAndroidBackPress);
} }
}, },
componentWillUnmount: function() { componentWillUnmount: function() {
if (this.parentNavigator) { if (this.parentNavigator) {
this.parentNavigator.setHandler(null); this.parentNavigator.setHandler(null);
} else { } else if (Platform.OS === 'android') {
BackAndroid.removeEventListener('hardwareBackPress', this._handleBackPress); BackAndroid.removeEventListener('hardwareBackPress', this._handleAndroidBackPress);
} }
}, },
_handleBackPress: function() { _handleAndroidBackPress: function() {
var didPop = this.pop(); var didPop = this.pop();
if (!didPop) { if (!didPop) {
BackAndroid.exitApp(); BackAndroid.exitApp();