React native Reactnative错误-应为字符串或类/函数,但得到:未定义

React native Reactnative错误-应为字符串或类/函数,但得到:未定义,react-native,React Native,当我试图定义自己的自定义组件时,遇到了这个错误 // /common/MyAppText.js import React, {Component} from 'react'; import { Text, View, } from 'ReactNative'; class MyAppText extends Component { render(){ return ( <View> <Text>hello</Text

当我试图定义自己的自定义组件时,遇到了这个错误

// /common/MyAppText.js
import React, {Component} from 'react';
import {
  Text,
  View,
} from 'ReactNative';

class MyAppText extends Component {
  render(){
    return (
      <View>
        <Text>hello</Text>
      </View>
    )
  }
}

export default MyAppText
在另一个应用程序上,我尝试导入它并通过

import MyAppText from './common/MyAppText'
class Home extends Component {
  render(){
    return (
      <View>
        <MyAppText />
      </View>
    )
  }
}
但我遇到了一个错误,该错误预期为字符串或类/函数,但得到:未定义,请检查“MyAppText”的呈现方法。任何人都可以看到导出语法有什么问题


如果我在同一个文档中定义了所有内容,那么它就工作了,因此我无法理解导出中的某些内容。

您自己的导出/导入看起来很好。不确定这是否是问题,但线路

import {..} from 'ReactNative';
应该是:

import {..} from 'react-native';
您可能会期望由于找不到其他错误模块而崩溃,但由于通过Haste导出全局可用的模块ReactNative,您的导入最终会拾取该文件。因为该文件不导出属性视图和文本,所以代码可以很好地编译,但最终会得到未定义的变量

编辑以了解更多上下文:

名为React的本地捆绑程序使用Facebook自己的模块系统Haste,该系统允许任何人使用comment@providesModule名称修饰文件,然后只需导入即可从全球任何地方导入该文件。。。从'名字'


其中一个内部呈现程序模块声明@ProvideModule ReactNative。因此,当您从“ReactNative”导入时,您得到的是该模块,而不是生成错误。

您自己的导出/导入看起来不错。不确定这是否是问题,但线路

import {..} from 'ReactNative';
应该是:

import {..} from 'react-native';
您可能会期望由于找不到其他错误模块而崩溃,但由于通过Haste导出全局可用的模块ReactNative,您的导入最终会拾取该文件。因为该文件不导出属性视图和文本,所以代码可以很好地编译,但最终会得到未定义的变量

编辑以了解更多上下文:

名为React的本地捆绑程序使用Facebook自己的模块系统Haste,该系统允许任何人使用comment@providesModule名称修饰文件,然后只需导入即可从全球任何地方导入该文件。。。从'名字'


其中一个内部呈现程序模块声明@ProvideModule ReactNative。因此,当您从“ReactNative”导入时,您得到的是该模块,而不是生成错误。

您自己的导出/导入看起来不错。不确定这是否是问题所在,但“ReactNative”的行导入{..}应该是“react native”的行导入。不过,我预计会出现另一个错误,除非出于某种原因,您在某处也有一个名为ReactNative的模块。啊,实际上,由于这个全球可用的Haste模块,它可能正在导入React渲染器垫片:您自己的导出/导入看起来很好。不确定这是否是问题所在,但“ReactNative”的行导入{..}应该是“react native”的行导入。不过,我预计会出现另一个错误导致崩溃,除非出于某种原因,您在某处还有一个名为ReactNative的模块。啊,实际上,由于这个全球可用的Haste模块,它可能正在导入React渲染器垫片:是的,您是对的。问题在于react native的拼写错误。不知道为什么它没有抛出错误的包名。我在回答中对此进行了扩展-这有点神秘,但完全符合逻辑:是的,你是对的。问题在于react native的拼写错误。不确定为什么它没有抛出错误的包名。我在回答中对此进行了扩展-这有点神秘,但完全符合逻辑: