React native 路由'的组件;主要';必须是反应组件

React native 路由'的组件;主要';必须是反应组件,react-native,react-navigation,React Native,React Navigation,我对React Native和实现React navigation不太熟悉,了解这个概念,但会出错。 我通过不同的链接搜索了它,并根据这个问题的答案更改了导入和导出,但仍然存在相同的错误。我的代码如下: MainScreenNavigation.js import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation"; import Splash from '../s

我对React Native和实现
React navigation
不太熟悉,了解这个概念,但会出错。 我通过不同的链接搜索了它,并根据这个问题的答案更改了
导入
导出
,但仍然存在相同的错误。我的代码如下:

MainScreenNavigation.js

import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
// import HomeScreen from '../screens/Home/HomeScreen';
// import Profile from '../screens/Profile/Profile'

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Splash: Splash,
    Main: SigninNavigator,
},  {
        initialRouteName: 'Splash'
    },
)
);

const SigninNavigator = createSwitchNavigator({
    Signin: Signin,
    // Home: HomeNavigator,
},  {
        initialRouteName: 'Signin'
    },
);

// const HomeNavigator = createStackNavigator({
//     Profile: Profile,
//     HomeScreen: HomeScreen,
// },
//     {
//         initialRouteName: 'HomeScreen'
//     }
// );
import React, {Component} from 'react';
import {MainScreenNavigation} from "./src/navigations/MainScreenNavigation";

class App extends Component {
    render() {
        return (
            <MainScreenNavigation />
        );
    }
}

export default App;
import React from 'react';
import {ImageBackground, StatusBar, View, Text, TouchableOpacity} from 'react-native';
import { Logo } from '../../components/Logo';
import { styles } from './styles';

class Splash extends React.Component{

    gotoSigninScreen = () => {
        this.props.navigation.navigate("Main");
      };

    render(){
        return(

            <ImageBackground
                source={require('../../assets/splash.png')}
                style={styles.imageBackgroundStyle}>

                <StatusBar backgroundColor='#3F91D6'
                    barStyle='light-content' />

                <View style={styles.container}>
                    <View style={styles.upperBody}>

                        <View style={styles.containerInside}>
                            <Logo />
                            <Text style={styles.upperBodyText}>Track, Drive & Deliever</Text>
                        </View>

                    </View>

                    <View style={styles.lowerBody}>
                        <TouchableOpacity style={styles.buttonContainer}
                            onPress={() => navigate('Signin')}>
                            <Text style={styles.buttonText}>Get Started</Text>
                        </TouchableOpacity>
                    </View>

                </View>

            </ImageBackground>
            )
    }
}

export default Splash;
import React from 'react';
import {TouchableOpacity, Text, TextInput, View, KeyboardAvoidingView} from 'react-native';
import {styles} from './styles';
import {Logo} from "../../components/Logo";
import {hintColor} from "../../prefabs/colors";

class Signin extends React.Component {

    gotoHomeScreen = () => {
        this.props.navigation.navigate("Home");
      };

    render() {
        return (
            <KeyboardAvoidingView behavior="padding" style={styles.container}>

                <Logo/>

                <View style={styles.formContainer}>
                    <TextInput style={styles.input}
                               autoCapitalize="none"
                               onSubmitEditing={() => this.passwordInput.focus()}
                               autoCorrect={false}
                               keyboardType='email-address'
                               returnKeyType="next"
                               placeholder='Email'
                               placeholderTextColor={hintColor}/>

                    <TextInput style={styles.input}
                               returnKeyType="go"
                               ref={(input) => this.passwordInput = input}
                               placeholder='Password'
                               placeholderTextColor= {hintColor}
                               secureTextEntry/>

                    <TouchableOpacity style={styles.buttonContainer}

                                        // onPress={this.gotoHomeScreen}
                                        >

                        <Text style={styles.buttonText}>LOGIN</Text>
                    </TouchableOpacity>
                </View>
            </KeyboardAvoidingView>
        );
    }
}

export default Signin;
import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
import HomeScreen from '../screens/Home/HomeScreen';
import Profile from '../screens/Profile/Profile';

const HomeNavigator = createStackNavigator({
    Profile: Profile,
    HomeScreen: HomeScreen,
},
    {
        initialRouteName: 'HomeScreen'
    }
);

const SigninNavigator = createSwitchNavigator({
    Home: HomeNavigator,
    Signin: Signin,
},  {
        initialRouteName: 'Signin'
    },
);

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Main: SigninNavigator,
    Splash: Splash,
},  {
        initialRouteName: 'Splash'
    },
)
);
App.js

import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
// import HomeScreen from '../screens/Home/HomeScreen';
// import Profile from '../screens/Profile/Profile'

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Splash: Splash,
    Main: SigninNavigator,
},  {
        initialRouteName: 'Splash'
    },
)
);

const SigninNavigator = createSwitchNavigator({
    Signin: Signin,
    // Home: HomeNavigator,
},  {
        initialRouteName: 'Signin'
    },
);

// const HomeNavigator = createStackNavigator({
//     Profile: Profile,
//     HomeScreen: HomeScreen,
// },
//     {
//         initialRouteName: 'HomeScreen'
//     }
// );
import React, {Component} from 'react';
import {MainScreenNavigation} from "./src/navigations/MainScreenNavigation";

class App extends Component {
    render() {
        return (
            <MainScreenNavigation />
        );
    }
}

export default App;
import React from 'react';
import {ImageBackground, StatusBar, View, Text, TouchableOpacity} from 'react-native';
import { Logo } from '../../components/Logo';
import { styles } from './styles';

class Splash extends React.Component{

    gotoSigninScreen = () => {
        this.props.navigation.navigate("Main");
      };

    render(){
        return(

            <ImageBackground
                source={require('../../assets/splash.png')}
                style={styles.imageBackgroundStyle}>

                <StatusBar backgroundColor='#3F91D6'
                    barStyle='light-content' />

                <View style={styles.container}>
                    <View style={styles.upperBody}>

                        <View style={styles.containerInside}>
                            <Logo />
                            <Text style={styles.upperBodyText}>Track, Drive & Deliever</Text>
                        </View>

                    </View>

                    <View style={styles.lowerBody}>
                        <TouchableOpacity style={styles.buttonContainer}
                            onPress={() => navigate('Signin')}>
                            <Text style={styles.buttonText}>Get Started</Text>
                        </TouchableOpacity>
                    </View>

                </View>

            </ImageBackground>
            )
    }
}

export default Splash;
import React from 'react';
import {TouchableOpacity, Text, TextInput, View, KeyboardAvoidingView} from 'react-native';
import {styles} from './styles';
import {Logo} from "../../components/Logo";
import {hintColor} from "../../prefabs/colors";

class Signin extends React.Component {

    gotoHomeScreen = () => {
        this.props.navigation.navigate("Home");
      };

    render() {
        return (
            <KeyboardAvoidingView behavior="padding" style={styles.container}>

                <Logo/>

                <View style={styles.formContainer}>
                    <TextInput style={styles.input}
                               autoCapitalize="none"
                               onSubmitEditing={() => this.passwordInput.focus()}
                               autoCorrect={false}
                               keyboardType='email-address'
                               returnKeyType="next"
                               placeholder='Email'
                               placeholderTextColor={hintColor}/>

                    <TextInput style={styles.input}
                               returnKeyType="go"
                               ref={(input) => this.passwordInput = input}
                               placeholder='Password'
                               placeholderTextColor= {hintColor}
                               secureTextEntry/>

                    <TouchableOpacity style={styles.buttonContainer}

                                        // onPress={this.gotoHomeScreen}
                                        >

                        <Text style={styles.buttonText}>LOGIN</Text>
                    </TouchableOpacity>
                </View>
            </KeyboardAvoidingView>
        );
    }
}

export default Signin;
import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
import HomeScreen from '../screens/Home/HomeScreen';
import Profile from '../screens/Profile/Profile';

const HomeNavigator = createStackNavigator({
    Profile: Profile,
    HomeScreen: HomeScreen,
},
    {
        initialRouteName: 'HomeScreen'
    }
);

const SigninNavigator = createSwitchNavigator({
    Home: HomeNavigator,
    Signin: Signin,
},  {
        initialRouteName: 'Signin'
    },
);

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Main: SigninNavigator,
    Splash: Splash,
},  {
        initialRouteName: 'Splash'
    },
)
);
import React,{Component}来自'React';
从“/src/navigations/MainScreenNavigation”导入{MainScreenNavigation};
类应用程序扩展组件{
render(){
返回(
);
}
}
导出默认应用程序;
Splash.js

import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
// import HomeScreen from '../screens/Home/HomeScreen';
// import Profile from '../screens/Profile/Profile'

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Splash: Splash,
    Main: SigninNavigator,
},  {
        initialRouteName: 'Splash'
    },
)
);

const SigninNavigator = createSwitchNavigator({
    Signin: Signin,
    // Home: HomeNavigator,
},  {
        initialRouteName: 'Signin'
    },
);

// const HomeNavigator = createStackNavigator({
//     Profile: Profile,
//     HomeScreen: HomeScreen,
// },
//     {
//         initialRouteName: 'HomeScreen'
//     }
// );
import React, {Component} from 'react';
import {MainScreenNavigation} from "./src/navigations/MainScreenNavigation";

class App extends Component {
    render() {
        return (
            <MainScreenNavigation />
        );
    }
}

export default App;
import React from 'react';
import {ImageBackground, StatusBar, View, Text, TouchableOpacity} from 'react-native';
import { Logo } from '../../components/Logo';
import { styles } from './styles';

class Splash extends React.Component{

    gotoSigninScreen = () => {
        this.props.navigation.navigate("Main");
      };

    render(){
        return(

            <ImageBackground
                source={require('../../assets/splash.png')}
                style={styles.imageBackgroundStyle}>

                <StatusBar backgroundColor='#3F91D6'
                    barStyle='light-content' />

                <View style={styles.container}>
                    <View style={styles.upperBody}>

                        <View style={styles.containerInside}>
                            <Logo />
                            <Text style={styles.upperBodyText}>Track, Drive & Deliever</Text>
                        </View>

                    </View>

                    <View style={styles.lowerBody}>
                        <TouchableOpacity style={styles.buttonContainer}
                            onPress={() => navigate('Signin')}>
                            <Text style={styles.buttonText}>Get Started</Text>
                        </TouchableOpacity>
                    </View>

                </View>

            </ImageBackground>
            )
    }
}

export default Splash;
import React from 'react';
import {TouchableOpacity, Text, TextInput, View, KeyboardAvoidingView} from 'react-native';
import {styles} from './styles';
import {Logo} from "../../components/Logo";
import {hintColor} from "../../prefabs/colors";

class Signin extends React.Component {

    gotoHomeScreen = () => {
        this.props.navigation.navigate("Home");
      };

    render() {
        return (
            <KeyboardAvoidingView behavior="padding" style={styles.container}>

                <Logo/>

                <View style={styles.formContainer}>
                    <TextInput style={styles.input}
                               autoCapitalize="none"
                               onSubmitEditing={() => this.passwordInput.focus()}
                               autoCorrect={false}
                               keyboardType='email-address'
                               returnKeyType="next"
                               placeholder='Email'
                               placeholderTextColor={hintColor}/>

                    <TextInput style={styles.input}
                               returnKeyType="go"
                               ref={(input) => this.passwordInput = input}
                               placeholder='Password'
                               placeholderTextColor= {hintColor}
                               secureTextEntry/>

                    <TouchableOpacity style={styles.buttonContainer}

                                        // onPress={this.gotoHomeScreen}
                                        >

                        <Text style={styles.buttonText}>LOGIN</Text>
                    </TouchableOpacity>
                </View>
            </KeyboardAvoidingView>
        );
    }
}

export default Signin;
import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
import HomeScreen from '../screens/Home/HomeScreen';
import Profile from '../screens/Profile/Profile';

const HomeNavigator = createStackNavigator({
    Profile: Profile,
    HomeScreen: HomeScreen,
},
    {
        initialRouteName: 'HomeScreen'
    }
);

const SigninNavigator = createSwitchNavigator({
    Home: HomeNavigator,
    Signin: Signin,
},  {
        initialRouteName: 'Signin'
    },
);

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Main: SigninNavigator,
    Splash: Splash,
},  {
        initialRouteName: 'Splash'
    },
)
);
从“React”导入React;
从“react native”导入{ImageBackground,StatusBar,View,Text,TouchableOpacity};
从“../../components/Logo”导入{Logo};
从“./styles”导入{styles};
类Splash扩展了React.Component{
gotoSigninScreen=()=>{
this.props.navigation.navigate(“主”);
};
render(){
返回(
跟踪、驱动和交付
导航('Signin')}>
开始
)
}
}
导出默认飞溅;
Signin.js

import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
// import HomeScreen from '../screens/Home/HomeScreen';
// import Profile from '../screens/Profile/Profile'

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Splash: Splash,
    Main: SigninNavigator,
},  {
        initialRouteName: 'Splash'
    },
)
);

const SigninNavigator = createSwitchNavigator({
    Signin: Signin,
    // Home: HomeNavigator,
},  {
        initialRouteName: 'Signin'
    },
);

// const HomeNavigator = createStackNavigator({
//     Profile: Profile,
//     HomeScreen: HomeScreen,
// },
//     {
//         initialRouteName: 'HomeScreen'
//     }
// );
import React, {Component} from 'react';
import {MainScreenNavigation} from "./src/navigations/MainScreenNavigation";

class App extends Component {
    render() {
        return (
            <MainScreenNavigation />
        );
    }
}

export default App;
import React from 'react';
import {ImageBackground, StatusBar, View, Text, TouchableOpacity} from 'react-native';
import { Logo } from '../../components/Logo';
import { styles } from './styles';

class Splash extends React.Component{

    gotoSigninScreen = () => {
        this.props.navigation.navigate("Main");
      };

    render(){
        return(

            <ImageBackground
                source={require('../../assets/splash.png')}
                style={styles.imageBackgroundStyle}>

                <StatusBar backgroundColor='#3F91D6'
                    barStyle='light-content' />

                <View style={styles.container}>
                    <View style={styles.upperBody}>

                        <View style={styles.containerInside}>
                            <Logo />
                            <Text style={styles.upperBodyText}>Track, Drive & Deliever</Text>
                        </View>

                    </View>

                    <View style={styles.lowerBody}>
                        <TouchableOpacity style={styles.buttonContainer}
                            onPress={() => navigate('Signin')}>
                            <Text style={styles.buttonText}>Get Started</Text>
                        </TouchableOpacity>
                    </View>

                </View>

            </ImageBackground>
            )
    }
}

export default Splash;
import React from 'react';
import {TouchableOpacity, Text, TextInput, View, KeyboardAvoidingView} from 'react-native';
import {styles} from './styles';
import {Logo} from "../../components/Logo";
import {hintColor} from "../../prefabs/colors";

class Signin extends React.Component {

    gotoHomeScreen = () => {
        this.props.navigation.navigate("Home");
      };

    render() {
        return (
            <KeyboardAvoidingView behavior="padding" style={styles.container}>

                <Logo/>

                <View style={styles.formContainer}>
                    <TextInput style={styles.input}
                               autoCapitalize="none"
                               onSubmitEditing={() => this.passwordInput.focus()}
                               autoCorrect={false}
                               keyboardType='email-address'
                               returnKeyType="next"
                               placeholder='Email'
                               placeholderTextColor={hintColor}/>

                    <TextInput style={styles.input}
                               returnKeyType="go"
                               ref={(input) => this.passwordInput = input}
                               placeholder='Password'
                               placeholderTextColor= {hintColor}
                               secureTextEntry/>

                    <TouchableOpacity style={styles.buttonContainer}

                                        // onPress={this.gotoHomeScreen}
                                        >

                        <Text style={styles.buttonText}>LOGIN</Text>
                    </TouchableOpacity>
                </View>
            </KeyboardAvoidingView>
        );
    }
}

export default Signin;
import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
import HomeScreen from '../screens/Home/HomeScreen';
import Profile from '../screens/Profile/Profile';

const HomeNavigator = createStackNavigator({
    Profile: Profile,
    HomeScreen: HomeScreen,
},
    {
        initialRouteName: 'HomeScreen'
    }
);

const SigninNavigator = createSwitchNavigator({
    Home: HomeNavigator,
    Signin: Signin,
},  {
        initialRouteName: 'Signin'
    },
);

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Main: SigninNavigator,
    Splash: Splash,
},  {
        initialRouteName: 'Splash'
    },
)
);
从“React”导入React;
从“react native”导入{TouchableOpacity,Text,TextInput,View,KeyboardAvoidingView};
从“./styles”导入{styles};
从“../../components/Logo”导入{Logo};
从“./../prefacts/colors”导入{hintColor}”;
类签名扩展了React.Component{
gotoHomeScreen=()=>{
这个.props.navigation.navigate(“Home”);
};
render(){
返回(
this.passwordInput.focus()}
自动更正={false}
keyboardType='email-address'
returnKeyType=“下一步”
占位符=“电子邮件”
占位符文本颜色={hintColor}/>
this.passwordInput=input}
占位符=“密码”
占位符textcolor={hintColor}
secureTextEntry/>
登录
);
}
}
导出默认签名;

这段代码到底出了什么问题以及如何修复它?

我通过如下更改我的
MainScreenNavigation.js
来消除这个错误

MainScreenNavigation.js

import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
// import HomeScreen from '../screens/Home/HomeScreen';
// import Profile from '../screens/Profile/Profile'

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Splash: Splash,
    Main: SigninNavigator,
},  {
        initialRouteName: 'Splash'
    },
)
);

const SigninNavigator = createSwitchNavigator({
    Signin: Signin,
    // Home: HomeNavigator,
},  {
        initialRouteName: 'Signin'
    },
);

// const HomeNavigator = createStackNavigator({
//     Profile: Profile,
//     HomeScreen: HomeScreen,
// },
//     {
//         initialRouteName: 'HomeScreen'
//     }
// );
import React, {Component} from 'react';
import {MainScreenNavigation} from "./src/navigations/MainScreenNavigation";

class App extends Component {
    render() {
        return (
            <MainScreenNavigation />
        );
    }
}

export default App;
import React from 'react';
import {ImageBackground, StatusBar, View, Text, TouchableOpacity} from 'react-native';
import { Logo } from '../../components/Logo';
import { styles } from './styles';

class Splash extends React.Component{

    gotoSigninScreen = () => {
        this.props.navigation.navigate("Main");
      };

    render(){
        return(

            <ImageBackground
                source={require('../../assets/splash.png')}
                style={styles.imageBackgroundStyle}>

                <StatusBar backgroundColor='#3F91D6'
                    barStyle='light-content' />

                <View style={styles.container}>
                    <View style={styles.upperBody}>

                        <View style={styles.containerInside}>
                            <Logo />
                            <Text style={styles.upperBodyText}>Track, Drive & Deliever</Text>
                        </View>

                    </View>

                    <View style={styles.lowerBody}>
                        <TouchableOpacity style={styles.buttonContainer}
                            onPress={() => navigate('Signin')}>
                            <Text style={styles.buttonText}>Get Started</Text>
                        </TouchableOpacity>
                    </View>

                </View>

            </ImageBackground>
            )
    }
}

export default Splash;
import React from 'react';
import {TouchableOpacity, Text, TextInput, View, KeyboardAvoidingView} from 'react-native';
import {styles} from './styles';
import {Logo} from "../../components/Logo";
import {hintColor} from "../../prefabs/colors";

class Signin extends React.Component {

    gotoHomeScreen = () => {
        this.props.navigation.navigate("Home");
      };

    render() {
        return (
            <KeyboardAvoidingView behavior="padding" style={styles.container}>

                <Logo/>

                <View style={styles.formContainer}>
                    <TextInput style={styles.input}
                               autoCapitalize="none"
                               onSubmitEditing={() => this.passwordInput.focus()}
                               autoCorrect={false}
                               keyboardType='email-address'
                               returnKeyType="next"
                               placeholder='Email'
                               placeholderTextColor={hintColor}/>

                    <TextInput style={styles.input}
                               returnKeyType="go"
                               ref={(input) => this.passwordInput = input}
                               placeholder='Password'
                               placeholderTextColor= {hintColor}
                               secureTextEntry/>

                    <TouchableOpacity style={styles.buttonContainer}

                                        // onPress={this.gotoHomeScreen}
                                        >

                        <Text style={styles.buttonText}>LOGIN</Text>
                    </TouchableOpacity>
                </View>
            </KeyboardAvoidingView>
        );
    }
}

export default Signin;
import { createAppContainer, createSwitchNavigator, createStackNavigator } from "react-navigation";
import Splash from '../screens/Splash/Splash';
import Signin from '../screens/Signin/Signin';
import HomeScreen from '../screens/Home/HomeScreen';
import Profile from '../screens/Profile/Profile';

const HomeNavigator = createStackNavigator({
    Profile: Profile,
    HomeScreen: HomeScreen,
},
    {
        initialRouteName: 'HomeScreen'
    }
);

const SigninNavigator = createSwitchNavigator({
    Home: HomeNavigator,
    Signin: Signin,
},  {
        initialRouteName: 'Signin'
    },
);

export const MainScreenNavigation = createAppContainer(createSwitchNavigator({
    Main: SigninNavigator,
    Splash: Splash,
},  {
        initialRouteName: 'Splash'
    },
)
);

在其他一切实际影响输出之前声明导出appContainer?