React native需要一个字符串或类函数,但未定义

时间:2018-02-17 18:31:41

标签: javascript reactjs react-native

我收到此错误: 与世博会建立的 导入容器到主文件app.js的问题

登录代码

import React, { Component } from 'react';
import LoginForm from '../components/LoginForm';
export default class SignIn extends Component {
  render() {
        return (
            <View>
               <Text>
               </Text>
            </View>
        );
    }
}

App.js代码

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View,
  TextInput
} from 'react-native';
import SignIn from './app/containers';

export default class App extends Component {
  render() {
    return (
      <View style={styles.container}>

        <Text style={styles.instructions}>
          Ma App
        </Text>

         <SignIn />
      </View>
    );
  }
}

如果我删除signIn它的工作!

屏幕上显示

错误enter image description here

1 个答案:

答案 0 :(得分:1)

您的SignIn组件的路径很可能不正确,或者您错过了index.js导出。您可以通过控制台记录组件SignIn来测试此理论;你会发现它打印undefined

原因是您正在尝试从路径SignIn导入默认模块./app/containers。假设这是一个有效路径,您尝试从./app/containers/index.js导入默认导出。这不太可能是正确的,因为index.js(AKA桶)目的是从app目录导出多个公共模块。

假设您的index.js已正确定义,并包含以下内容或类似内容。

export { default as SignIn } from './SignIn.js';

然后,您应该更新导入SignIn以导入命名模块而不是默认模块;如下。

import { SignIn} from './app/containers';

或者,您可以直接从组件的源文件中导入默认模块。

import SignIn from './app/containers/SignIn';

希望这有帮助!