我在使用create-react-app
时遇到了这个问题,我得到了一个错误:
Home不包含名为Home的导出。
下面是我设置App.js
文件的方法:
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
文件,它的设置如下:
import React, { Component } from 'react';
class Home extends Component {
render() {
return (
<p className="App-intro">
Hello Man
</p>
)
}
}
export default Home;
正如您所看到的,我正在导出Home
组件,但是在控制台中出现了一个错误,内容如下:
这是怎么回事?
9条答案
按热度按时间rqqzpn5f1#
我刚刚遇到了这个错误消息(升级到nextjs 9后,一些已泄漏的导入开始出现这个错误)。我设法使用如下语法修复它们:
6l7fqoea2#
我们也可以用
在class关键字之前使用export关键字。
默认
默认导出类
这两种情况都不需要写
下课后。
hlswsv353#
将
export { Home };
放在Home.js文件的末尾vom3gejh4#
听起来很疯狂,我花了将近一个小时来解决一个类似的问题,重新启动了本地主机,它自己恢复了。荒谬的是,重新启动可以修复一切。对我来说,问题是注销。
我导入了:第一个月
使用此定义函数,注销组件
export default Logout
ht4b089n5#
你可以使用两种方法来解决这个问题,第一种方法,我认为这是最好的方法是取代导入段您的代码与以下之一:
或者导出没有默认值的组件,这称为命名导出,如下所示
jfewjypa6#
这是解决方案:
r6hnlfcb7#
这个错误告诉你你导入的不正确。下面是你必须添加的代码:
这是不正确的,因为您正在导出为默认导出,而不是命名导出。请检查此行:
您将 * 导出为默认值 *,而不是名称。因此,导入
Home
如下所示:注意没有花括号。进一步阅读
import
和export
。ghhkc1vu8#
用途
而不是
从主页中删除
{}
06odsfpq9#
在这种情况下,您混淆了default导出和named导出。
在处理
named
导出时,如果您尝试导入它们,则应使用花括号,如下所示:在你的例子中,Home被导出为默认值。当你没有指定某段代码的某个名称时,这是一个将从模块中导入的值。当你导入时,省略花括号,它将在你要导入的模块中查找默认导出值。所以你的导入应该是,
一些参考资料: