您好,我在React Native上使用expo客户端创建应用程序。我在处理许多组件时遇到了麻烦。我通过
export default <componentName>
在我的一个组件上解决了此问题,但是此解决方案在这里不再起作用。我已经尝试了来自github和堆栈溢出的许多解决方案,但是没有任何工作对我有用。此外,在React Native上创建我的第一个应用程序时,我遇到了许多麻烦和错误。请解决此问题,并鼓励我参与React Native Development。
import React, { Component } from 'react';
import Home from './HomeComponent';
import Menu from './MenuComponent';
import ContactUs from './ContactComponent';
import AboutUs from './AboutComponent';
import DishDetail from './DishdetailComponent';
import { DISHES } from '../shared/dishes';
import { View, Platform, Text, ScrollView, Image, StyleSheet } from 'react-native';
import { createStackNavigator, createDrawerNavigator, DrawerItems, SafeAreaView } from 'react-navigation';
import Icon from 'react-native-elements';
import { LEADERS } from '../shared/leaders';
const MenuNavigator = createStackNavigator({
Menu: { screen: Menu,
navigationOptions: ({ navigation }) => ({
headerLeft: <Icon name="menu" size={24}
color='white'
onPress={ () => navigation.toggleDrawer() }
/>
}) },
DishDetail: { screen: DishDetail }
},
{
initialRouteName: 'Menu',
navigationOptions: {
headerStyle: {
backgroundColor: "#512DA8"
},
headerTintColor: '#fff',
headerTitleStyle: {
color: "#fff"
}
}
}
);
const HomeNavigator = createStackNavigator({
Home: { screen: Home }
}, {
navigationOptions: ({ navigation }) => ({
headerStyle: {
backgroundColor: "#512DA8"
},
headerTitleStyle: {
color: "#fff"
},
headerTintColor: "#fff",
headerLeft: <Icon name="menu" size={24}
color= 'white'
onPress={ () => navigation.toggleDrawer() }
/>
})
});
const ContactUsNavigator = createStackNavigator({
ContactUs: { screen: ContactUs }
}, {
navigationOptions: ({ navigation }) => ({
headerStyle: {
backgroundColor: "#512DA8"
},
headerTitleStyle: {
color: "#fff"
},
headerTintColor: "#fff" ,
headerLeft: <Icon name="menu" size={24}
color= 'white'
onPress={ () => navigation.toggleDrawer() }
/>
})
});
const AboutUsNavigator = createStackNavigator({
AboutUs: { screen: AboutUs }
}, {
navigationOptions: ({ navigation }) => ({
headerStyle: {
backgroundColor: "#512DA8"
},
headerTitleStyle: {
color: "#fff"
},
headerTintColor: "#fff",
headerLeft: <Icon name="menu" size={24}
color= 'white'
onPress={ () => navigation.toggleDrawer() }
/>
})
});
const MainNavigator = createDrawerNavigator({
Home:
{ screen: HomeNavigator,
navigationOptions: {
title: 'Home',
drawerLabel: 'Home',
drawerIcon: ({ tintColor }) => (
<Icon
name='home'
type='font-awesome'
size={24}
color={tintColor}
/>
),
}
},
AboutUs: {
screen: AboutUsNavigator,
navigationOptions: {
title: 'About Us',
drawerLabel: 'About Us',
drawerIcon: ({ tintColor }) => (
<Icon
name='info-circle'
type='font-awesome'
size={24}
color={tintColor}
/>
)
}
},
Menu:
{ screen: MenuNavigator,
navigationOptions: {
title: 'Menu',
drawerLabel: 'Menu',
drawerIcon: ({ tintColor }) => (
<Icon
name='list'
type='font-awesome'
size={24}
color={tintColor}
/>
)
}
},
ContactUs:
{
screen: ContactUsNavigator,
navigationOptions: {
title: 'Contact Us',
drawerLabel: 'ContactUs',
drawerIcon: ({ tintColor }) => (
<Icon
name='address-card'
type='font-awesome'
size={22}
color={tintColor}
/>
),
}
}
},
{
drawerBackgroundColor: '#D1C4E9'
});
class Main extends Component {
constructor(props) {
super(props);
this.state = {
dishes: DISHES,
leaders: LEADERS,
selectedDish: null
};
}
onDishSelect(dishId) {
this.setState({selectedDish: dishId})
}
render() {
return (
<View style={{flex:1, paddingTop: Platform.OS === 'ios' ? 0 : Expo.Constants.statusBarHeight }}>
<MainNavigator />
</View>
);
}
}
export default Main;