从外部访问类方法 - React Native

时间:2015-12-28 07:43:35

标签: react-native

我有以下课程:

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

我希望能够在以下函数中访问该类,该函数位于我的应用程序的主要范围内,但无法使其工作:

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

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分: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}
      />
    );
  }
});