0

我有以下错误

未捕获的不变违规:元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件),但得到:未定义。您可能忘记从定义的文件中导出组件

我已经阅读了很多关于这个错误的帖子,比如这个这个 ,但他们都说同样的:我错误地导出了我的组件。但我不明白我的出口出了什么问题

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View, Image, ImageBackground, Linking, TouchableOpacity, TouchableHighlight, Alert, Button } from 'react-native';
import { createStackNavigator, createAppContainer } from "react-navigation";
import { FormLabel, FormInput, FormValidationMessage} from 'react-native-elements';

type Props = {};
export default class Login extends Component<Props> {
  constructor(props) {
    super(props);
    state = {
        login: '',
   };
  }
  someFunction(){
    Alert.alert("test")
  }

  onPress (){
    this.props.navigation.navigate('Home')
  }

  checkLogin(login){
    Alert.alert('test');
  }

  render() {
    return (
      <View style={styles.container}>
            <Image
              style={styles.image}
              source={require("./images/logo.png")}>
            </Image>
            <FormLabel style={styles.flex1}>enter Login of your Hotel</FormLabel>
            <FormInput 
                //value = {this.state.login}
                onChangeText={login => this.checkLogin({login})}
                //onChangeText={this.checkLogin.bind(login)}
                placeholder='enter your login'
                autoCapitalize = 'none'
                />
      </View>
    );
  }
}

和 App.js :

import React, {Component} from 'react';
import {Platform, StyleSheet, Text, View, Image,ImageBackground, Linking, TouchableOpacity, Alert } from 'react-native';
import { createStackNavigator, createAppContainer } from "react-navigation"
import {HomeScreen} from './HomeScreen';
import Display from './Display';
import Login from './Login';

export default class App extends React.Component {
  render() {
    return <AppContainer />;
  }
}

const AppNavigator = createStackNavigator({
  Home: HomeScreen,
  Display: Display,
  Login: Login,
},
{
  initialRouteName: "Login",
  headerMode: 'none', 
}
);

const AppContainer = createAppContainer(AppNavigator);

你知道什么是错的吗?只有当我使用 FormInput 和 FormLabel 时才会出现错误。如果我用你好替换它会显示

4

1 回答 1

0

似乎在 v1.0.0-beta 中已弃用FormInputFormLabel

请参阅此处(在v1.0.0-beta(beta 1)更改部分下)- https://github.com/react-native-training/react-native-elements/releases/tag/v1.0.0-beta

您应该使用Input而不是FormInput使用label属性而不是使用FormLabel组件。

<FormInput 
   label={"Login"} />
于 2019-04-10T09:14:15.947 回答