Я получаю сообщение об ошибке при настройке хранилища для редукса с использованием машинописи в первый раз.
Сообщение об ошибке выглядит следующим образом:
Недопустимый тип элемента: ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено:не определено.Скорее всего, вы забыли экспортировать компонент из файла, в котором он определен, или вы перепутали импорт по умолчанию и имена.
11 | // tslint:disable-next-line
12 | const store = configureStore(undefined);
13 |
> 14 | render(
15 | <Provider store={store}>
16 | <ConnectedRouter history={createHistory()}>
17 | <App />
import * as React from 'react';
import {render} from 'react-dom';
import {ConnectedRouter} from 'react-router-redux';
import {Provider} from 'react-redux';
import configureStore from './store/configureStore';
import createHistory from 'history/createBrowserHistory';
import App from './App';
import './styles/styles.css';
// tslint:disable-next-line
const store = configureStore(undefined);
render(
<Provider store={store}>
<ConnectedRouter history={createHistory()}>
<App />
</ConnectedRouter>
</Provider>,
document.getElementById('root') as HTMLElement
);
My configurestore:
import {createStore} from 'redux';
import rootReducer from '../reducers';
interface WindowModuleHot extends Window {
module: {
hot: {
accept: (path: string, callback: () => void) => void;
};
};
}
export default function configureStore(initialState: any) {
const store = createStore(rootReducer, initialState);
const hotWindow = window as WindowModuleHot;
if (hotWindow.module && hotWindow.module.hot) {
// Enable Webpack hot module replacement for reducers
hotWindow.module.hot.accept('../reducers', () => {
const nextReducer = require('../reducers');
store.replaceReducer(nextReducer);
});
}
return store;
}