2015-12-28 23 views
1

我有以下類:訪問類方法從外部 - 陣營本地

class Comp extends React.Component{ 
    onBack { 
     navigator.pop(); 
    } 
} 

我希望能夠訪問在下面的函數,它坐落在我的應用程序,主要適用範圍,但不能在類得到它的工作:

BackAndroid.addEventListener('hardwareBackPress', function() { 
    Comp.onBack(); 
    return true; 
}); 

我在這裏錯過了什麼?

回答

2

您需要的Navigator實例的引用,這可以通過使用道具ref或以下模式從官方MoviesApp例子來完成:

var _navigator; 
BackAndroid.addEventListener('hardwareBackPress',() => { 
    if (_navigator && _navigator.getCurrentRoutes().length > 1) { 
    _navigator.pop(); 
    return true; 
    } 
    return false; 
}); 

var RouteMapper = function(route, navigationOperations, onComponentRef) { 
    _navigator = navigationOperations; 
    ... 
}; 

var MoviesApp = React.createClass({ 
    render: function() { 
    var initialRoute = {name: 'search'}; 
    return (
     <Navigator 
     style={styles.container} 
     initialRoute={initialRoute} 
     configureScene={() => Navigator.SceneConfigs.FadeAndroid} 
     renderScene={RouteMapper} 
     /> 
    ); 
    } 
}); 
+0

謝謝!它做到了。 –