ES6如何做多个默认导出

时间:2017-06-28 15:49:02

标签: reactjs ecmascript-6 react-redux

我仍然对react + redux和ES6感兴趣。我正在尝试实现socketio,我遇到了必须导出socketio连接我的redux连接的问题。

redux connect

export default connect(mapStateToProps, matchDispatchToProps)(UserList);

socketio connect

export default socketConnect(App);

问题 使它们协同工作的正确语法是什么?

4 个答案:

答案 0 :(得分:14)

您不能拥有多个默认导出。

相反,请使用命名导出。

// moduleName.js    

export const ConnectedUserList = connect(mapStateToProps, matchDispatchToProps)(UserList)

export const RealTimeApp = socketConnect(App);

按名称要求出口。

// otherModule.js
import { ConnectedUserList, RealTimeApp } from "./moduleName"

答案 1 :(得分:6)

您可以混合默认导出和命名导出。

export default ConnectedUserList = connect(mapStateToProps, matchDispatchToProps)(UserList)

export const RealTimeApp = socketConnect(App);

然后,您可以导入导出:

import ConnectedUserList, { RealTimeApp } from "./moduleName"

答案 2 :(得分:3)

 oldest_president = presidents[presidents['Life Days'] == presidents['Life 
 Days'].max()]
 oldest_president

[![enter image description here][2]][2]

答案 3 :(得分:-1)

我未曾提及的一种可能性。您只能具有一个默认导出,但是导出的对象可以是具有多个成员的对象:

// MyModule.js
const componentA => () => {return <div>Component A</div>;}
const componentB => () => {return <div>Component B</div>;}

export default { componentA, componentB };

然后:

import MyModule from "./MyModule";

MyModule.componentA();