возникли трудности с отладкой редукторов в Redux - PullRequest
0 голосов
/ 13 марта 2019

Я встретил эти редукторы в кодовой базе, над которой я работаю на своей работе.

const ACTION_HANDLERS = {
  [LOGIN_REQUEST]: (state, action) => ({
    ...state,
    isAuthenticating: true
  }),
  [LOGIN_SUCCESS]: (state, action) => ({
    ...state,
    isAuthenticating: false,
    isAuthenticated: true,
    userId: action.userId,
    authToken: action.auth,
    authTTL: action.ttl,
    authCreatedAt: action.created,
    isNewUser: action.isNewUserFlag
  }),
};

export default function authReducer(state = initialAuthState, action) {
  const handler = ACTION_HANDLERS[action.type];
  if(handler!==undefined){
      console.log('login handler',handler);
     // debugger;
  }

  return handler ? handler(state, action) : state;
}

Моя проблема связана с тем, как отлаживать этот метод предварительно написанных редукторов. Я вводил консольные журналы перед каждым [] в ACTION_HANDLERS, но они синтаксически неверны. Я раньше писал редукторы, и они были такими:

export default function FundsReducer(state=INITIAL_STATE,action={}){

  switch(action.type){

      case GET_ALL_FUNDS_FAILED:{
        return{
          ...state,
           funds:{
            ...state.funds,
            failed:true,
            pending:false,

          }
        };
      }
      case GET_ALL_FUNDS_PENDING:
      {
        let {options}=action.payload;

        return{
          ...state,
           funds:{
            ...state.funds,
            data:[],
            failed:null,
            pending:true,
          }
        };
      }
      case GET_ALL_FUNDS:
      {
         let data;
         data=action.payload.response.data;
        return{
          ...state,
          funds:{
            ...state.funds,
            data,
            pending:false,
          }
        }
      }

У меня проблемы с отладкой этих редукторов и введением журналов консоли.

1 Ответ

1 голос
/ 13 марта 2019

Вы можете использовать избыточное промежуточное программное обеспечение, как указано в @ remix23, или просто изменить свое действие, как показано ниже, чтобы вы могли регистрировать состояние или действие.

[LOGIN_REQUEST]: (state, action) => {
 console.log(action);
 return {
    ...state,
    isAuthenticating: true
  }
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...