Редуктор не вызывается редуктором - PullRequest
0 голосов
/ 06 февраля 2019

Приведенный ниже код отправляет create_event, а затем вызывает действие addFlashMessage

export const createEvent = event => {
  return dispatch => {
    dispatch({
      type: "CREATE_EVENT",
      payload: {
        event
      }
    });
    addFlashMessage("Event has been created");
  };
};

addFlashMessage вызывается при действии
Но ADD_FLASH_MESSAGE не называется

export const addFlashMessage = message => {
  console.log("action is invoked");
  return dispatch => {
    dispatch({
      type: "ADD_FLASH_MESSAGE",
      payload: {
        message
      }
    });
  };
};

Это никогда не называется

 case "ADD_FLASH_MESSAGE":
            console.log("action called");

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вместо того, чтобы просто вызывать другую функцию из createEvent, вам нужно dispatch, чтобы вызвать функцию redux-thunk.

Вот исправленная.

export const createEvent = event => {
  return dispatch => {
    dispatch({
      type: "CREATE_EVENT",
      payload: {
        event
      }
    });
    dispatch(addFlashMessage("Event has been created"));
  };
};
0 голосов
/ 06 февраля 2019

Вам нужно dispatch action, чтобы вызвать addFlashMessage, как показано ниже.

dispatch({type: "ADD_FLASH_MESSAGE",payload:"Event has been created"});

Ваш код должен выглядеть следующим образом.

export const createEvent = event => {
  return dispatch => {
    dispatch({
      type: "CREATE_EVENT",
      payload: {
        event
      }
    });
   dispatch({type: "ADD_FLASH_MESSAGE",payload:"Event has been created"});
  };
};
...