Пытаюсь сделать модульную структуру приложения с использованием React + Redux
, где отдельные модули будут лежать в своих репозиториях (например, модули application
, admin
, account
etc.). Реализация сейчас следующая:
index.js
import { Application } from 'application-module';
import { ModuleAdmin } from 'admin-panel';
const app = new Application();
const moduleAdmin = new ModuleAdmin(app);
[app, moduleAdmin].forEach(element => {
element.start();
});
В модуле application-module
в методе start()
происходит инициализация React
приложения и добавление необходимых роутингов:
application-module
start() {
this.store = this.configureStore({});
const AppComponent = () => (
<Provider store={this.store}>
<Router>
<Switch>
{this.routes.map((route: any, i: number) => (
<Route key={i} path={route.path} component={route.component} />
))}
</Switch>
</Router>
</Provider>
);
ReactDOM.render(<AppComponent />, document.getElementById('root'));
serviceWorker.unregister();
}
Модуль admin-panel
- админка (ООП оболочка над умным компонентом с публичными методами для взаимодействия с другими модулями)
constructor(app: IApp) {
this.component = withProps({ admin: this })(AdminPanel);
this.app = app;
this.routes = [
{
path: '/admin',
component: this.component
}
];
this.app.addReducer(this.reducer);
this.routes.forEach(route =>
this.app.addRoute(route.path, route.component)
);
}
При попытке все это запустить вылетает ошибка:
Could not find "store" in the context of "Connect(withHandlers(lifecycle(Component)))". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to Connect(withHandlers(lifecycle(Component))) in connect options.
Очевидно, админка не видит store
, который лежит в модуле application-module
, но как это поправить - непонятно. Есть ли какой-то способ?
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть функция оброботки пост запроса внутри которой я тестирую валидность 2 mail аккаунтов с помощью библиотеки emailjs-imap-client , подключаясь...