【问题标题】:The component of route "WelcomeScreen" must be react component路由“WelcomeScreen”的组件必须是反应组件
【发布时间】:2019-05-29 04:22:39
【问题描述】:

我对这段小代码有疑问。我几乎到处都搜索过这个错误,但它并没有解决我的问题。关于tenter image description herehat问题,我已经使用了专家给出的所有方法。请如果有人可以提供帮助。

///app.js

     import {
      createStackNavigator,
      createAppContainer
    } from 'react-navigation';
    import React, {Component} from 'react';
    import {AppRegistry} from 'react-native';
    import WelcomeScreen from './Components/Welcome/Welcome';
    import SignInScreen from './Components/SingIn/SingIn';
    import SignUpScreen from './Components/SingUp/SingUp';
    import ContinueAsGuestScreen from './Components/ContinueAsGuest/ContinueAsGuest';

     const RootStack = createStackNavigator({
      WelcomeScreen: {
        WelcomeScreen: WelcomeScreen
      },
      SignInScreen: {
       SignInScreen: SignInScreen
      },

      SignUpScreen: {
        SignUpScreen: SignUpScreen
      },
     ContinueAsGuestScreen: {
       ContinueAsGuestScreen: ContinueAsGuestScreen
      },

    });

    const App = createAppContainer(RootStack);

    export default App;

**我已经使用了所有专门导出我发现但没有帮助的东西的技术*

这里是 Welcom.js

    import React, { Component } from 'react';
import { Platform, AppRegistry, StyleSheet, Text, View, TextInput, TouchableOpacity } from 'react-native';
import symbolicateStackTrace from 'react-native/Libraries/Core/Devtools/symbolicateStackTrace';
import { ScrollView } from 'react-native-gesture-handler';



export default class Welcome extends Component {
    static navigatonOptions =
        { title: 'Welcome Screen' };


    constructor(props) {
        super(props);
        this.handleButton = this.handleButton.bind(this);
        state =
            {
                Firstname: '',
                Lastname: '',
                EmailAddress: '',
                PhoneNumber: '',
                CompanyName: '',
                OtherEmailAddress: ''
            }

    }
    handleFirstName = (text) => {
        this.setState({ FirstName: text })
    }
    handleLastName = (text) => {
        this.setState({ Lastname: text })
    }
    handleEmailAddress = (text) => {
        this.setState({ EmailAddress: text })
    }
    handlePhoneNumber = (text) => {
        this.setState({ PhoneNumber: text })
    }
    handleCompanyName = (text) => {
        this.setState({ CompanyName: text })
    }
    handleOtherEmailAddress = (text) => {
        this.setState({ OtherEmailAddress: text })
    }


    handleButton = () => {
        this.props.navigation.navigate("SignInScreen");
    }
    render() {

        return (


            <ScrollView style={styles.container} >
                <View style={styles.header}>
                    <Text style={{ fontSize: 20 }}> Profile </Text>
                </View>
                <View>
                    <Text style={{ fontSize: 20, alignSelf: "center" }}> Welcome here  </Text>
                </View>

                <Text>FIRST NAME *</Text>
                <TextInput style={styles.input}
                    placeholder="Firstname"
                    placeholderTextColor="#9a73ef"
                    AutoCapitalization="none"
                    onChangeText={this.handleFirstName}
                />


                <Text>LAST NAME *</Text>
                <TextInput style={styles.input}
                    placeholder="LastName"
                    placeholderTextColor="#9a73ef"
                    AutoCapitalization="none"
                    onChangeText={this.handleLastName}
                />

                <Text>Email Address *</Text>
                <TextInput style={styles.input}
                    placeholder="Email Address"
                    placeholderTextColor="#9a73ef"
                    AutoCapitalization="none"
                    onChangeText={this.handleEmailAddress}
                />

                <Text>PHONE NUMBER *</Text>
                <TextInput style={styles.input}
                    placeholder="Phone Number"
                    placeholderTextColor="#9a73ef"
                    AutoCapitalization="none"
                    onChangeText={this.handlePhoneNumber}
                />

                <Text>COMPANY NAME *</Text>
                <TextInput style={styles.input}
                    placeholder="Company Name"
                    placeholderTextColor="#9a73ef"
                    AutoCapitalization="none"
                    onChangeText={this.handleCompanyName}
                />

                <Text>OTHER EMAIL ADDRESS *</Text>
                <TextInput style={styles.input}
                    placeholder="Other Email Address"
                    placeholderTextColor="#9a73ef"
                    AutoCapitalization="none"
                    onChangeText={this.handleOtherEmailAddress}
                />



                <TouchableOpacity style={styles.submitButton2} onPress={() => this.handleButton} >
                    <Text style={styles.submitButtonText}> Save </Text>
                </TouchableOpacity>




            </ScrollView>


        );
    }
}

【问题讨论】:

标签: react-native components screen react-navigation-stack


【解决方案1】:

我认为您在 createStackNavigator() 中错误地创建了导航器。试试这个:

const RootStack = createStackNavigator({
  WelcomeScreen: {
    screen: WelcomeScreen
  },
  SignInScreen: {
   screen: SignInScreen
  },

  SignUpScreen: {
    screen: SignUpScreen
  },
 ContinueAsGuestScreen: {
   screen: ContinueAsGuestScreen
  },
});

【讨论】:

  • 是的。还有 1 个其他错误,但也是如此。感谢您的帮助。
  • 好的,很好,不客气!如果您考虑检查此答案,我会很高兴:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
相关资源
最近更新 更多