首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Home不包含名为Home的导出

Home不包含名为Home的导出
EN

Stack Overflow用户
提问于 2017-05-25 13:12:52
回答 8查看 154.2K关注 0票数 142

我在使用create-react-app时遇到了这个问题,我得到了一个错误:

主目录不包含名为主目录的导出。

下面是我如何设置我的App.js文件:

代码语言:javascript
运行
复制
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import { Home } from './layouts/Home'

class App extends Component {
  render() {
    return (
      <div className="App">
        Hello
        <Home />
      </div>
    )
  }
}

export default App;

现在在我的layouts文件夹中有Home.js文件,它的设置如下:

代码语言:javascript
运行
复制
import React, { Component } from 'react';

class Home extends Component {
  render() {
    return (
      <p className="App-intro">
        Hello Man
      </p>
    )
  }
}

export default Home;

如您所见,我正在导出Home组件。但是我在我的控制台上得到了一个错误,说:

怎么一回事?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2017-05-25 13:14:22

错误提示您导入不正确。以下是您必须添加的代码:

代码语言:javascript
运行
复制
import { Home } from './layouts/Home';

这是不正确的,因为您将导出为默认导出,而不是命名导出。检查这一行:

代码语言:javascript
运行
复制
export default Home;

您将导出为默认值,而不是名称。因此,像这样导入Home

代码语言:javascript
运行
复制
import Home from './layouts/Home';

请注意,这里没有花括号。关于importexport的进一步阅读。

票数 308
EN

Stack Overflow用户

发布于 2017-08-24 20:34:41

使用

代码语言:javascript
运行
复制
import Home from './layouts/Home'

而不是

代码语言:javascript
运行
复制
import { Home } from './layouts/Home'

从主页中删除{}

票数 13
EN

Stack Overflow用户

发布于 2018-09-25 01:40:34

这是您将默认导出和命名导出混合在一起的情况。

在处理named导出时,如果您尝试导入它们,则应该使用大括号,如下所示。

代码语言:javascript
运行
复制
import { Home } from './layouts/Home'; // if the Home is a named export

在您的示例中,Home被导出为默认Home。当您没有指定某段代码的特定名称时,它将从模块中导入。当您导入并省略大括号时,它将在您导入的模块中查找默认导出。所以你的导入应该是,

代码语言:javascript
运行
复制
import Home from './layouts/Home'; // if the Home is a default export

要查看的一些参考资料:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44172727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档