我正在尝试使用react-native-navigation启动一个项目,但似乎无法继续前进 .

现在,我收到的错误是React无法呈现根组件,我已经设法找到原因(据我所知)是我创建的函数,Navigation.events() . registerAppLaunchedListener,永远不会被调用,我似乎无法找到原因 . 我的代码如下

我的App.js文件是项目调用的第一个JS文件 . 项目的根文件这么说

const { start} = require('./Navigation')
start();

我的Navigation.js文件,带有从App.js调用的start()函数 . 这里我初始化根屏幕,在registerAppLaunchedListener()这是我的问题 .

const { Navigation } = require('react-native-navigation');
const { registerScreens } = require('./screens');
const { Platform } = require('react-native');

function start() {
    console.log("START")
    registerScreens();
    console.log("REGISTERING APP LAUNCH LISTER")
    Navigation.events().registerAppLaunchedListener(() => {

        console.log("SETTING ROOT");

        Navigation.setRoot({
            root: {
                stack: {
                  children: [
                    {
                      component: {
                        name: 'navigation.loginscreen'
                      }
                    }
                  ]
                }
              }
        });
    });
}

module.exports = {
  start
};

./screens中的index.js文件,用于将屏幕组件注册到ID,稍后在setRoot下的registerAppLaunchedListener()中使用

const { Navigation } = require('react-native-navigation');
const LoginScreen = require('./LoginScreen');
const HomeScreen = require('./HomeScreen');

function registerScreens() {
    console.log("REGISTER");
    Navigation.registerComponent('navigation.loginscreen', () => LoginScreen);
    Navigation.registerComponent('navigation.homescreen', () => HomeScreen);
}


module.exports = {
    registerScreens
};

最后我想首先显示的屏幕是一个永远不会显示的屏幕,LoginScreen.js . 非常基本的 .

import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import {BackgroundHex} from '../Backend/Constants'


class LoginScreen extends React.Component{
    render() {

        console.log("HEYEHY")

        return (
          <View style={styles.container}>
            <Text>Open up App.js to start working on your app!</Text>
          </View>
        );
      }
}

module.exports = LoginScreen;


const styles = StyleSheet.create({
    container: {
      flex: 1,
      backgroundColor: '#fff',
      alignItems: 'center',
      justifyContent: 'center',
    },
  });

我试图按照the react-native-navigation docs及其sample app上的指南进行操作,但无法理解我正在做的不同之处就是弄乱了它!

我的第一个想法是,我认为这可能与我如何导出组件和功能有关,但似乎并非如此 .

控制台记录:开始注册注册APP启动LISTER

但是没有从registerAppLaunchedListener()设置ROOT,所以我认为这就是问题所在 .

相反,我收到以下错误堆栈

▼警告:React.createElement:type无效 - 期望一个字符串(对于内置组件)或类/函数(对于复合组件)但得到:object . 您可能忘记从其定义的文件中导出组件,或者您可能混淆了默认导入和命名导入 . 检查registerRootComponent.js中的代码:35 . 在RCTView(在View.js:60)的RCTView中(在renderApplication.js:33中)在RCTView(在View.js:60)的View中观看(在AppContainer.js:102)(在AppContainer.js:122)在AppContainer中(在renderApplication.js:32)

任何能带给我解决方案的东西都非常感谢!