用例很简单:我只想导出一个名称与导入对象一样的对象。
例如:
import React from 'react';
export React;
但这不起作用。我必须写:
import React from 'react';
export const React = React;
但这很奇怪。这样做的正确方法是什么?
已更新:
感谢您的帮助和参考。我用许多线索解决了我的问题。我想和我分享一些常见的案例和解决方案。
import d, {obj} from '...';
export {obj, d};
export {obj as name1, d as name2};
export * from '...';
export * as name1 from '...';
export {a, b as name1} from '...';
export {default} from '...';
export {default as name1} from '...';
答案 0 :(得分:83)
我经常在组成多个文件的index.js文件中执行以下操作:
export {default as SomeClass} from './SomeClass';
export {someFunction} from './utils';
export {default as React} from 'react';
此blog entry提供了一些不错的其他示例。
访问这些导出的导入时,您应该知道此eslint-rule。基本上,在另一个文件中,你不应该:
import SomeClassModule from 'SomeClass/index.js';
SomeClassModule.someFunction(); // Oops, error
你应该这样做:
import SomeClassModule, {someFunction} from 'SomeClass/index.js';
someFunction(); // Ok
答案 1 :(得分:19)
您可以导出具有此类结构的导入文件
import First from './First'
import Second from './Second'
/..../
export { First, Second }
答案 2 :(得分:0)
您应该能够export {React}
并通过import {React} from ./module
有关详细信息,请参阅https://developer.mozilla.org/en/docs/web/javascript/reference/statements/export。
答案 3 :(得分:0)
鉴于./foo.js
:
const Foo = class {
talk() { return 'hello'; }
};
export default Foo;
然后你应该能够做到这一点:
import Foo from './foo';
let foo = new Foo();
foo.talk(); // => 'hello';
语法或多或少遵循commonjs module.exports模式,您可以在其中执行此操作:
const Foo = class {
};
module.exports = Foo;
更多信息:
答案 4 :(得分:0)
对于我的用例,我明确需要某种显式的import语句,以便babel可以将我的es7代码转换为es5。
以下结果导致错误You gave us a visitor for the node type "ForAwaitStatement" but it's not a valid type
:
require( 'babel-core/register' ); //transpiles es7 to es5
export {default} from './module_name'
我的解决方案是使用require()
显式导入模块:
require( 'babel-core/register' );
export default require( './module_name' ).default;
答案 5 :(得分:0)
这就是组织静态图像文件的方式。我创建了一个名为“ Directory.js”的新文件。
const asset = {
icon: {
artist: require('./icon/artist.png'),
artists: require('./icon/artists.png'),
bookmark: require('./icon/bookmark.png'),
cameraFlip: require('./icon/camera-flip.png')
},
image: {
color: require('./image/color.png'),
posting: require('./image/posting.png'),
newSchool: require('./image/new-school.png'),
traditional: require('./image/traditional.png')
}
}
export default asset;
这是导入。
import asset from './../asset/Directory';
// usage in react native
<Image source={asset.icon.posting} />
希望这对您有帮助!