在打开应用时显示错误。
Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: object. You likely forgot to export your component from the file it's defined in.
这是我创建的基本代码。请参阅重现步骤:
create-react-native-app AwesomeProject
npm install --save react-navigation
将以下代码从反馈导航文档
粘贴到App.jsimport React from 'react';
import {
AppRegistry,
Text,
} from 'react-native';
import { StackNavigator } from 'react-navigation';
class HomeScreen extends React.Component {
static navigationOptions = {
title: 'Welcome',
};
render() {
return <Text>Hello, Navigation!</Text>;
}
}
const SimpleApp = StackNavigator({
Home: { screen: HomeScreen },
});
AppRegistry.registerComponent('SimpleApp', () => SimpleApp);
使用npm start
运行应用,并在expo app android中打开
请注意,没有其他文件被编辑过。
答案 0 :(得分:2)
Expo和标准的React Native项目模板的声明应用程序根组件的方式略有不同。
在标准的React Native项目中,您在index.android.js
中使用AppRegistry:
AppRegistry.registerComponent('SimpleApp', () => SimpleApp);
在Expo中,框架会为您注册组件,您需要做的就是从Main.js
导出组件:
export default SimpleApp;
以下是修改并粘贴到Expo Snack的代码示例:https://snack.expo.io/S1CZnFadZ