Вы можете использовать import
и export
только на верхнем уровне вашего модуля. (Вы можете использовать динамический import()
в другом месте, но не статические версии.)
Итак, чтобы получить этот экспорт, вы должны сделать то, что, как вы сказали, вы пытаетесь избежать в комментариях:
import {default as state} from './state';
import {default as actions} from './actions';
export default {
state, actions
};
, но , остерегайтесь того, что вы там экспортируете: объект со свойствами state
и actions
, чьи начальные значения взяты из импортированных state
и action
, но которые не связаны с ними. Код, импортирующий этот объект, может изменить эти свойства. Вы можете сохранить живое связывание:
import {default as state} from './state';
import {default as actions} from './actions';
export default {
get state() {
return state;
},
get actions() {
return actions;
}
};
но в этот момент вы как бы заново изобретаете объект пространства имен модуля. Вы можете предпочесть просто:
export {default as state} from './state.js';
export {default as actions} from './actions.js';
и затем используйте те именованные экспорты:
import {state, actions} from "./index";
или используйте объект пространства имен модуля
import * as index from "./index";
// Use `index.state` and `index.actions`