Как будет выглядеть аналогичный код на любом action creator?
Вы отправляете простой объект:{
  type: 'BLA_BLA'
}
Это ваш action.
Этоfunction qq() {
  return {
    type: 'BLA_BLA',
  }
}
ваш "создатель действия" (action creator).
Чтобы объект с типом (и данными если нужно), попал в редьюсер, его нужно прокинуть через специальную "трубу" - dispatch (диспетчер).
То есть:dispatch(qq())
// или
dispatch({
  type: 'BLA_BLA',
})
Затем, пропущенный через "диспетчер" объект, попадет во все редьюсеры. В каком-то из редьюсеров, будет команда "фас" на определенный тип (type), в нашем случае - строка 'BLA_BLA', значит:export default (state = initialState, action) => {
    switch (action.type)
    {
        case 'BLA_BLA':
            // вот сюда придет javascript компилятор, так как вы попали в нужный кейс
            // ибо выше указано - switch по типу экшена (action.type)
           // ниже вы делаете что вам нужно с вашими данными
          // конкретно в этом кейсе, вы берете все что было в state и изменяете loading на true
            return { ...state, loading: true };
        case CALLBACK_SUCCESS:
            // сюда action с типом 'BLA_BLA' не попал
            return { ...state, status: 'OK' };
        case CALLBACK_ERROR:
           // сюда тоже
            return { ...state, status: 'ERROR', message: action.message };
        default:
          // и сюда
            return state;
    }
}
Как говорит сама документация, action creators - это функции, которые создают экшены. То есть, это функция, которая возвращает экшен (объект). В вашем случае action creators, это loading, success, errorredux-actions и redux-act это уже вспомогательные библиотеки, как более лаконичный подход.