React-Native中的不变违规

时间:2018-04-24 08:35:06

标签: react-native

我是React Native的新手。 当我在Android模拟器上运行项目时显示此错误。 我尝试了很多解决方案,但没有用。

错误日志:

  

不变违规:元素类型无效:
      期望一个字符串(用于内置组件)或类/函数       (对于复合组件)但得到:undefined。

LoginForm.js代码:

import React, {Component} from 'react';
import {View} from 'react-native';
import {Button,Card,CardSection} from './components'

 class LoginForm extends Component{

    render(){

        return(
           <Card>

               <CardSection>
                   <Button>
                       Log in
                   </Button>
               </CardSection>

           </Card>
        );
    }
}

export default LoginForm;

App.js代码:

import React,{Component} from 'react';
import {View} from 'react-native';
import {Header} from './components';
import LoginForm from './components';

 class App extends Component{



    render(){

        return(

            <View>
                <Header headertext="Test"/>
                <LoginForm />
                </View>


        );
    }
}

export default App;

index.js

import { AppRegistry } from 'react-native';
import App from './src/App';

AppRegistry.registerComponent('second', () => App);

组件/ index.js

export * from './Button';
export * from './Card';
export * from './CardSection';
export * from './Header';

Project files

1 个答案:

答案 0 :(得分:1)

在您的components / index.js中,您将导出除LoginForm.js之外的所有内容

因此,当您从&#34; ./ components&#34;导入LoginForm时在App.js中,它查找index.js文件并且找不到默认导出。

您可以在export * from "./LoginForm"中添加components/index.js,并将其作为App.js中的命名导入导入,例如:import {LoginForm} from "./components"

或许你可以直接import LoginForm from "./components/LoginForm"