在React Native应用程序中导入模块

时间:2016-12-09 20:50:56

标签: reactjs react-native native-base

我是ES6模块系统的新手,所以这可能听起来很傻。

在使用NativeBase的React Native Starter App中,任何人都可以解释native-starter-kit/js/components/home/index.js可以做什么

import myTheme from '../../themes/base-theme`;

当从中导入的文件时,native-starter-kit/js/themes/base-theme.js没有export default变量myTheme的任何代码?

2 个答案:

答案 0 :(得分:4)

您要引用的第二个文件是整个导出默认值。 第5行:

export default {

// Badge
badgeBg: '#ED1727',
badgeColor: '#fff',

...

}

因此当import myTheme from '../../themes/base-theme; myTheme时,default是他们为导入的模块选择的变量名称。在这种情况下,转换器将查找import { myTheme } from '../../themes/base-theme;导出。

如果它们已经完成default那么就会出现问题,因为它没有在导出中明确命名。这样做并不是指myTheme导出,而是指明确调用$( '.navigation' ).find( 'li.active' ).parents( 'li' ).addClass( 'active' );

的导出

我不确定我是否有道理,您可能想要https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/import阅读

答案 1 :(得分:2)

不使用默认导出意味着它是命名导出

您可以在一个文件中包含多个命名导出。

示例1: export class Theme {}

您必须使用其确切名称导入此导出。

要在其他文件中使用此组件,您应该这样做, import { Theme } from '../../themes/base-theme'

示例2:

如果您导出为默认导出为, export default class Theme {}

然后在另一个文件中导入默认导出而不使用{},如下所示, import Theme from '../../themes/base-theme'

每个文件只能有一个默认导出。

虽然其React的惯例是从文件中导出一个组件,并将其导出为默认导出。

您可以在导入时自由重命名默认导出。 import myTheme from '../../themes/base-theme'