我正在尝试使用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)
任何能带给我解决方案的东西都非常感谢!