私はモジュールのツリーを持ち、特に2つは奇妙な動作をしています。 Babel 6 + Browserifyを使用する(babelify)。ES6モジュールが間違った順序を初期化していますか?
モジュール#1(WindowManager/index.js)は、デフォルトエクスポートと同様に、reducer
という名前の関数をエクスポートします。
import WindowManager from './component';
import { combineReducers } from 'redux';
import { connect } from 'react-redux';
import { reducer as search_palette } from './SearchPalette';
const initialState = {
// stuff
};
const window_manager = (state = initialState, action) => {
// stuff
return state;
};
export const reducer = combineReducers({window_manager, search_palette})
const mapStateToProps = (state) => {
return {
// stuff
};
};
export default connect(mapStateToProps)(WindowManager)
モジュール#2(store.js)輸入WindowManager/index.js
のreducer
機能と、それを使用しようとします。何らかの理由で
import { createStore, combineReducers } from 'redux';
import { reducer as WindowManagerReducer } from './WindowManager';
const initialState = {
// stuff
};
const FetchApplicationsReducer = (state = initialState, action) => {
// stuff
return state;
}
export default createStore(
combineReducers({
applications: FetchApplicationsReducer,
ui: WindowManagerReducer,
})
)
、store.jsはWindowManager/index.js
前に実行なっているため、輸出は使用できません。
誰でもこれに参加できますか?
詳細情報なし/最小限の再生で何が起こっているのかを言うのは難しいです。循環依存関係はありますか? – JMM
問題の2つのモジュール間の循環依存性はありません。再現のために上記を満たしていないのでしょうか? – probablyup
これは重要なのかどうかは分かりませんが、 'store.js'はモジュールマップ内で' WindowManager/index.js'の後にくるので、実行順序も定義すれば期待どおりに動作するはずです。 – probablyup