next.js + expo:您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入
Posted
技术标签:
【中文标题】next.js + expo:您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入【英文标题】:next.js + expo: You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports 【发布时间】:2020-08-13 00:13:31 【问题描述】:当我尝试运行 yarn ios
时,我得到:
Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of `MyApp`.
但是我的App.tsx
,有:
class MyApp extends App
render()
const Component, pageProps = this.props;
return (
<ThemeProvider theme=theme>
<ScrollView>
<Component ...pageProps />
</ScrollView>
<FooterBar />
</ThemeProvider>
)
export default MyApp
所以我不确定它在抱怨什么?
【问题讨论】:
This 可能会对您有所帮助。Component
可能导出不正确。
你能包含呈现MyApp
的文件吗?
我很确定是因为您需要 _app.tsx 而不是 App.tsx?请在文件顶部显示导入语句
【参考方案1】:
尝试直接从其来源导入组件,然后插入您的 pageProp。所以在例子中:
import Component from '../pathOfComponent';
【讨论】:
【参考方案2】:您很可能没有在 this.props.Component 中传递任何内容。 javascript 相当棘手,如果元素不存在,它会将其视为未定义
【讨论】:
我正在使用 next.js 并以某种方式处理组件。以上是关于next.js + expo:您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入的主要内容,如果未能解决你的问题,请参考以下文章
您可能忘记从其定义的文件中导出组件,或者您可能混淆了默认导入和命名导入