Reactnative 错误 - 预期一个字符串或一个类/函数但得到:未定义
2017-09-03
678
当我尝试定义自己的自定义组件时,我遇到了此错误。
// /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'的渲染方法。有人能看到导出语法有什么问题吗?
如果我在同一个文档中定义所有内容,那么它就可以正常工作,所以这是我无法弄清楚的导出问题。
1个回答
您自己的导出/导入看起来不错。不确定这是否是问题所在,但行
import {..} from 'ReactNative';
应该是:
import {..} from 'react-native';
您可能希望它因其他错误(未找到模块)而崩溃,但由于
此内部 React Native 文件
通过 Haste 导出全局可用模块“ReactNative”,您的导入最终会选择该文件。由于该文件不导出属性
View
和
Text
,因此代码编译正常,但最终出现未定义的变量。
编辑以获取更多上下文 :
React Native 打包器(称为
Metro
)使用 Facebook 自己的模块系统(称为 Haste),它允许任何人使用注释
@providesModule Name
修饰文件,然后只需使用
import ... from 'Name';
即可从全局任何地方导入它
其中一个内部渲染器模块声明
@providesModule ReactNative
。因此,当您导入
from 'ReactNative'
时,您会得到该模块,而不是构建错误。
jevakallio
2017-09-03