[ReactNative] Navigator fix BackAndroid warning on iOS
This commit is contained in:
parent
b3a2d6c574
commit
e382894ef3
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue