2017-06-28 3 views
1

私はまだreact + reduxとES6のハングを取得しています。私はsocketioを実装しようとしています、そして、私はreduioのconnectを使ってsocketioをexportする必要があるという問題に遭遇します。ES6複数のデフォルトエクスポートを行う方法

reduxが

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

が接続socketio接続

export default socketConnect(App); 

質問 それらを連携させるための正しい構文は何ですか?

+1

が唯一のデフォルトのエクスポートあります(デフォルト輸出する)。私はあなたがreact + reduxを使って何をしようとしているのか正確にはわかりませんが、あなたの輸出品の名前付き輸出品を使用しているはずです。ここでは、[クイックインポート/エクスポートガイド](https://hackernoon.com/import-export-default-require-commandjs-javascript-nodejs-es6-vs-cheatsheet-different-tutorial-example-5a321738b50f)と[ECMAScript 6モジュール:最終的な構文](http://2ality.com/2014/09/es6-modules-final.html#default-exports-one-per-module)を参照してください。 – jfriend00

+0

このhttps://stackoverflow.com/questions/41337709/in-reactjs-when-should-i-add-brackets-when-import/41338672#41338672を参照すると、ファイルにデフォルトエクスポートを1つだけ設定できるため、他を名前付きエクスポートとしてエクスポートすることができます –

答えて

3

複数のデフォルトエクスポートを持つことはできません。

名前付きエクスポートを使用してください。

// moduleName.js  

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

export const RealTimeApp = socketConnect(App); 

エクスポートを名前で指定する必要があります。

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

デフォルトのエクスポートと名前付きエクスポートを混在させることができます。

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

export const RealTimeApp = socketConnect(App); 

そして、あなたはあなたのエクスポートインポートすることができ、後

:あなたのモジュールの消費者が無名のインポートを行う際に、それを割り当てることができる唯一の事がありますので

import ConnectedUserList, { RealTimeApp } from "./moduleName" 
関連する問題