Отклонение необработанных обещаний Axios

У меня проблема с аксиомами в моем приложении, поддерживающем реакцию. Сообщение об ошибке представлено здесь Рис1Рис2 Actions.start () никогда не запускается.

Изменить 1: Вот полный код. Изменить 2: Изображение сообщения об ошибке Рис3 Что касается результатов, проблема должна быть const res = await ... Придется добавить больше деталей, иначе я не смогу обновить этот вопрос;)

export const apiPostLogin = (
 accountData
) => async dispatch => {
dispatch(setFetching(true));
try {
  var instance = axios.create({
    baseURL: 'https://api.xxxx.de/',
    timeout: 1000
 });

const res = await axios.post('/api/v1/auth/login', accountData);
Actions.Start();

dispatch(setAuthToken(res.data.token));


  await dispatch(apiGetAccount(res.data.token));
  console.info(res);
} catch (error) {
  console.info(error.response);
  dispatch(setFetching(false));
  if (error.response.status === 401) {
  dispatch(
    setApiResponse({
      apiResponse: true,
      didShowResponse: false,
      apiResponseError: true,
      apiResponseCode: 401,
      apiResponseMessage: 'E-Mail und Passwort stimmen nicht überein'
    })
  );
} else if (error.response.status === 417) {
  dispatch(
    setApiResponse({
      apiResponse: true,
      didShowResponse: false,
      apiResponseError: true,
      apiResponseCode: 417,
      apiResponseMessage: 'Du hast Deine E-Mail noch nicht bestätigt'
    })
  );
} else {
  dispatch(
    setApiResponse({
      apiResponse: true,
      didShowResponse: false,
      apiResponseError: true,
      apiResponseCode: 499,
      apiResponseMessage:
        'Du kannst Dich im Moment nicht bei uns anmelden. Wir befinden   uns im Wartungsmodus'
    })
   );
   }
  }
  };
Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
3
0
8 208
1

Ответы 1

Оберните вызов post в блок try catch (catch необходим для обработки отклоненных обещаний). Ваш сетевой запрос не удался. Вам нужно поймать ошибку / обработать отказ от обещания

    try {
        const res = await axios.post('/api/v1/auth/login', accountData);
        console.info('Success!');
        console.info(res.status);
        console.info(res.data);
    } catch (e) {
        console.error('Failure!');
        console.error(e.response.status);
        throw new Error(e);
    }
    Actions.Start();

ИЛИ попробуйте использовать axios() вместо axios.create()

return axios.({
    method: 'post',
    baseURL: userEndpoint,
    headers: {
        common: {
            Accept: 'application/json',
        }
    }
}).then(...).catch(...);

Привет, спасибо за ответ! Но все равно не работает. Весь блок также заключен в оператор catch {}. У тебя есть другие идеи?

lernen7 01.11.2018 12:10

да подожди одну секунду

lernen7 01.11.2018 12:13

console.info(error.response); запускается в блоке catch?

Shivam 01.11.2018 12:21

Вы пробовали использовать его с .then вместо await?

Shivam 01.11.2018 12:36

Эй, консоль не выводит сообщение об ошибке. Когда я попробовал с., Тогда произошла другая ошибка. Может, я сделал что-то не так, поэтому попробую еще раз

lernen7 01.11.2018 12:54

удалите все из функции, просто сохраните вызов axios и посмотрите, что произойдет с await и с .then

Shivam 01.11.2018 12:56

Он только выводит TypeError: сбой сетевого запроса в консоли

lernen7 01.11.2018 12:56

Так теперь выдает предупреждение о Unhandled Promise Rejection?

Shivam 01.11.2018 12:57

эй, попробую позже. надо идти афк. Результаты напишу позже;) Большое спасибо за помощь! Я очень ценю это"!!!

lernen7 01.11.2018 12:58

Без проблем. Сообщите мне, сработало ли это для вас. ;) Спасибо

Shivam 01.11.2018 12:59

Привет, я распечатал сообщение об ошибке. Снимок экрана приведен в моей новой редакции. .тогда не получилось

lernen7 04.11.2018 13:05

Я также пробовал использовать выборку с помощью react native. У меня такие же ошибки. Могут ли быть проблемы с моим эмулированным устройством Android?

lernen7 04.11.2018 13:42

спасибо за этот комментарий, он открыл мне голову, вы, вероятно, столкнулись с той же проблемой, с которой я столкнулся, то есть с использованием localhost в качестве URL-адреса api, но я не могу этого сделать, поскольку эмулируемое устройство не находится на том же хосте, что и сервер, поэтому мне нужно использовать 192.168.0.1 или что-то в этом роде :)

Paulo Roberto Rosa 07.02.2019 15:15

Я не думаю, что во втором примере должна быть точка после axios?

dmikester1 08.07.2020 16:50

Другие вопросы по теме