CombineReducers в TypeScript - PullRequest
       0

CombineReducers в TypeScript

1 голос
/ 31 марта 2020
export const rootReducer = combineReducers({
    login: loginReducer,
});

Это работает нормально, но как только я пытаюсь объединить другой редуктор,

export const rootReducer = combineReducers({
    login: loginReducer,
    logout: logoutReducer
});

Я получаю сообщение об ошибке rootReducer, которое

'rootReducer' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.

Как я могу изменить вот это?

Вот так выглядит мой logoutReducer:

import {store} from '../index'

export const logoutReducer = (state = store.getState(), { type, payload } :any) => {
  switch (type) {
    case "logout":
      return {...state, token: payload};
    default:
      return state;
  }
};

1 Ответ

0 голосов
/ 10 апреля 2020

Вы пробовали это с назначением типа вашим базовым редукторам?

Например:

import {Action, Reducer} from 'redux';
interface LoginState {
   isLoggedIn: boolean;
   token: string;
}

interface LogoutState { 
   token:string;
}

export const logOutReducer: Reducer<LogoutState> = (state: LogoutState | undefined, incomingAction: Action): LogoutState=> {
switch (incomingAction.type) {
    case "logout":
      return {...state, token: payload};
    default:
      return state;
  }
}
//... export const logInReducer: Reducer<LoginState>...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...