在本机导出上使用大括号时

时间:2018-07-10 02:44:10

标签: javascript reactjs react-native

创建一些组件并将其导出后,显示在日志中:

  

不变违反:元素类型无效:预期为字符串(对于   内置组件)或类/函数(用于复合组件)   但得到:对象。

我读到的一些有关此主题的答案使有关本机导入和导出的操作更加复杂。

所以,疑问是:

如果组件不是动态导出且带有大括号? 以及是否在没有大括号的情况下使用默认动态导出?

2 个答案:

答案 0 :(得分:0)

这是答案

无默认导出意味着它是“命名导出”。一个文件中可以有多个命名的导出。因此,如果您这样做,

export class Template {}
export class AnotherTemplate {}

然后,您必须使用其确切名称导入这些导出。因此,要在另一个文件中使用这些组件,

import {Template, AnotherTemplate} from './components/templates'

或者,如果您以此方式导出为默认导出,

export default class Template {}

然后在另一个文件中导入默认导出,而无需使用{},

import Template from './components/templates'

每个文件只能有一个默认导出。在React中,惯例是从文件中导出一个组件,并将其导出为默认导出。

导入时,您可以随意重命名默认导出,

import TheTemplate from './components/templates'

您可以同时导入默认导出和命名导出,

import Template,{AnotherTemplate} from './components/templates'

答案 1 :(得分:0)

仅当模块刚刚导出时,才应使用大括号导入模块;如果将模块导出为默认导出模块,则应不带大括号导入。

导出的模块示例1:

...
export SomeModule;

然后您应按如下所示导入它:

import { SomeModule } from 'someWhere'
...

导出的模块示例2:

...
export default SomeModule;

然后您应按如下所示导入它:

import SomeModule from 'someWhere'
...