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:您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入的主要内容,如果未能解决你的问题,请参考以下文章

您可能忘记从其定义的文件中导出组件,或者您可能混淆了默认导入和命名导入

您可以将 Gatsby 和 Next js 用于单个 React js 网站吗?

React 中的可重用组件

检查 `component` 的渲染方法

Redux 存储:元素类型无效:应为字符串

Next.js 上下文提供程序用页面特定布局组件包装 App 组件,提供未定义的数据