Я пытаюсь выполнить обновление до подключенного реагирующего маршрутизатора при обновлении всех моих версий React, Redux и Router. У меня проблемы с созданием корневого редуктора и созданием магазина.
Предыдущий код редуктора, который работал, был ...
const appReducer = combineReducers({...reducers, router: connectRouter});
export const rootReducer = (state: IAppState, action: IAppAction) => {
return appReducer(state, action);
};
А для index.ts было:
import 'rxjs';
import { createStore, applyMiddleware, compose} from 'redux';
import { createEpicMiddleware } from 'redux-observable';
import { routerMiddleware } from 'connected-react-router';
import { logger } from 'redux-logger';
import { api, endPointKeys } from '../config';
import { IEpicDependency } from '../models';
import { rootReducer} from './root-reducer';
import { rootEpic } from './root-epic';
import { appHistory } from '../app-history';
const dependencies: IEpicDependency = { api, endPointKeys };
const epic = createEpicMiddleware(rootEpic, { dependencies });
const middlewareList = [epic, logger, routerMiddleware(appHistory())];
const windowlfDefined = typeof window === 'undefined' ? null: window as any;
const composeEnhancers = windowlfDefined.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const middlewares = composeEnhancers( applyMiddleware(... middlewareList));
const store = createStore(rootReducer, middlewares);
export { store };
Теперь, когда я добавляю в connectRouter ...
import { combineReducers } from 'redux';
import { connectRouter } from 'connected-react-router';
import { IAppState } from './state';
import { IAppAction } from './app-action';
import { reducers } from './reducers';
import { History} from 'history'
export const rootReducer = (state: IAppState, action: IAppAction,history: History) => combineReducers({...reducers, router: connectRouter(history)});
выдает ошибку для роутера ...
Тип '(редуктор: Редуктор) => Редуктор "нельзя назначить типу" Редуктор, AnyAction> ".
Типы параметров «редуктор» и «состояние» несовместимы.
Тип 'Reducer <{router: RouterState; }, AnyAction> | undefined 'нельзя назначить типу' Reducer <{router: RouterState; }, AnyAction> '.
Тип 'undefined' нельзя назначить типу 'Reducer <{router: RouterState; }, AnyAction> '.
Я не до конца понимаю, почему состояние и действие не могли быть переданы раньше, но добавив параметр history, index.ts теперь требует передачи трех параметров, и я не знаю, что в этой ситуации есть что-то проходимое. Как я могу изменить это, чтобы заставить это работать? Заранее спасибо