React Native“应用程序timeReportTool尚未注册”

时间:2017-12-12 09:34:08

标签: android gradle react-native

当我在Android设备上安装我的调试版本时出现此问题,如果我安装发布版本它只是崩溃

我见过有同样问题的人,但他们的解决方案对我没有用,所以这就是为什么我要伸出援手

这是我现在的app.js

function logout(){
  AsyncStorage.clear();
}

  const RootNavigator = StackNavigator({
  Login: {
    screen: Login,
    navigationOptions: ({ navigation}) => ({
      header: null,
    }),

  },
  Content: {
    screen: Content,
    navigationOptions: ({ navigation }) => ({
      header: null,     
    }),
  },
  });

  AppRegistry.registerComponent('lemockup', () => App);

export default RootNavigator; 

我知道这是错的,应该是这样的

export default class App extends Component<{}> {

logout(){
  AsyncStorage.clear();
}

  const RootNavigator = StackNavigator({
  Login: {
    screen: Login,
    navigationOptions: ({ navigation}) => ({
      header: null,
    }),

  },
  Content: {
    screen: Content,
    navigationOptions: ({ navigation }) => ({
      header: null,     
    }),
  },
  });
} 
export default RootNavigator; 

然后在我的index.js中有这个

    import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('lemockup', () => App);

但是,如果我尝试gradlew assembleRelease与它像这样我在const RootNavigator上得到错误正好在单词Rootnavigator行,我不知道为什么。任何知道自己做错了什么的人现在都坐了这么多个小时。

1 个答案:

答案 0 :(得分:1)

这里有些问题:

  1. 您不能只在类中定义变量。 RootNavigator定义可以位于App之外。
  2. 应用程序没有render功能 - 这可能是您想要使用导航器的地方。

    const RootNavigator = StackNavigator({
      Login: {
        screen: Login,
        navigationOptions: ({ navigation}) => ({
          header: null,
        }),
      },
      Content: {
        screen: Content,
        navigationOptions: ({ navigation }) => ({
          header: null,     
        }),
      },
    });
    
    export default class App extends Component<{}> {
    
      logout(){
        AsyncStorage.clear();
      }
    
      render() {
        return(<RootNavigator/>);
      }
    }
    
  3. 但是,为了进一步简化操作,您可以完全放弃App组件,直接导出RootNavigator。你必须找到一个更好的地方放置logout()