首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么es6 react组件只能与“导出默认值”一起工作?

为什么es6 react组件只能与“导出默认值”一起工作?
EN

Stack Overflow用户
提问于 2015-08-06 18:09:08
回答 1查看 238K关注 0票数 264

此组件确实可以工作:

代码语言:javascript
复制
export class Template extends React.Component {
    render() {
        return (
            <div> component </div>
        );
    }
};
export default Template;

如果我删除最后一行,它就不起作用了。

代码语言:javascript
复制
Uncaught TypeError: Cannot read property 'toUpperCase' of undefined

我想,我不理解es6语法中的一些东西。它不是必须在没有标记"default“的情况下导出吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-06 18:52:50

在没有default的情况下导出意味着它是一个“命名导出”。您可以在单个文件中包含多个命名导出。所以如果你这么做了,

代码语言:javascript
复制
class Template {}
class AnotherTemplate {}

export { Template, AnotherTemplate }

然后,您必须使用它们的确切名称导入这些导出。所以要在另一个文件中使用这些组件,您必须这样做,

代码语言:javascript
复制
import {Template, AnotherTemplate} from './components/templates'

或者,如果您导出为default导出,如下所示:

代码语言:javascript
复制
export default class Template {}

然后在另一个文件中导入默认导出,而不使用{},如下所示:

代码语言:javascript
复制
import Template from './components/templates'

每个文件只能有一个默认导出。在React中,从文件中导出一个组件是一种约定,导出它是默认的导出。

您可以在导入时自由重命名默认导出,

代码语言:javascript
复制
import TheTemplate from './components/templates'

并且您可以同时导入默认导出和命名导出。

代码语言:javascript
复制
import Template,{AnotherTemplate} from './components/templates'
票数 621
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31852933

复制
相关文章

相似问题

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