expo + response-native: при отправке сообщений журнала возникла проблема. - PullRequest
0 голосов
/ 04 февраля 2019

Я создаю приложение, которое я недавно переместил на выставку.Кажется, что приложение отображает ожидаемый экран, но до его завершения я получаю следующее сообщение об ошибке: console.error: «При отправке сообщений журнала в вашу среду разработки возникла проблема, {" name ":" Error "}".Когда я просматриваю экран браузера expo, я нажимаю на устройство следующую трассировку стека:

  node_modules/expo/build/logs/LogSerialization.js:146:14 in _captureConsoleStackTrace
  node_modules/expo/build/logs/LogSerialization.js:41:24 in Object.serializeLogDataAsync$
  node_modules/regenerator-runtime/runtime.js:62:39 in tryCatch
  node_modules/regenerator-runtime/runtime.js:288:21 in Generator.invoke [as _invoke]
  node_modules/regenerator-runtime/runtime.js:114:20 in Generator.prototype.(anonymous
  node_modules/regenerator-runtime/runtime.js:62:39 in tryCatch
  node_modules/regenerator-runtime/runtime.js:152:19 in invoke
  node_modules/regenerator-runtime/runtime.js:187:10 in <unknown>
  node_modules/promise/setimmediate/core.js:45:4 in tryCallTwo
  node_modules/promise/setimmediate/core.js:200:12 in doResolve

Вот скриншот ошибки:

enter image description here

Что означает эта ошибка?Я нашел какой-то документ, ссылающийся на удаление операторов console.log, и удалил те, которые у меня были, но это не помогло.

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

Это связано с тем, что собственный консольный регистратор React НЕ МОЖЕТ проанализировать объект JSON, полученный от Axios.Я могу гарантировать, что любой, у кого возникла эта ошибка, НЕ ПАРСИРУЕТ объект JSON перед записью его на консоль.

КОД, КОТОРЫЙ ДАЕТ ЭТУ ОШИБКУ:

Axios.post(URL).then(function (response)
{
console.log("POST RESPONSE: "+response);
}

КОД, ИСПРАВЛЯЮЩИЙ ЭТУ ОШИБКУ:

Axios.post(URL).then(function (response)
{
console.log("POST RESPONSE: "+JSON.stringify(response));
}
0 голосов
/ 16 февраля 2019

Я тоже столкнулся с этой странной ошибкой сегодня утром.Я работаю в режиме нативной поддержки с клиентом Expo для приложения, которое создаю с помощью популярного стека MERN (mongoDB, Express, React Native и Node.js).Я упоминаю, что, поскольку я много использую, я имею в виду МНОГО консольных журналов в бэкэнде, и до сих пор это не вызывало у меня никаких проблем.Так что в моем случае я не был уверен, произошла ли эта ошибка от какого-либо файла console.log, который я использовал.Я проверил трассировку стека экспо-отладчика в консоли (в порту 19001), потому что красный экран не предоставляет много информации о происхождении ошибки (много <unknown> вместо функций), и я увидел, что в нем есть что-тоделать с моими функциями действий и полезной нагрузкой, которую я отправлял своему редуктору, когда выполнял определенное действие, которое связывалось с бэкэндом.Ответ бэкэнда был отформатирован так:

payload: {
  config: {
     .
     .
     .
 }
 data: { the only part that i needed... }
 headers: {
    .
    .
    .
}

..other stuff from the response..

Выше заметить особо нечего, но это:

Фактический выигрыш, который меня интересовал, находится под ключом реквизита data ибыло единственное, что мне нужно из ответа.НО, в своем невежестве я отправлял все на мой редуктор.Так что я говорю, что я посылал действительно большой object как payload, и мне нужна была только его часть.Поэтому, когда я произвел некоторую деструктуризацию и сохранил упомянутый выше data, ошибка исчезла.

В заключение, для других, которые могут наткнуться на эту «ошибку», которая на самом деле не является ошибкой, bc приложение не аварийно завершает работу или что-то еще, так как вы можете закрыть окно и приложение запускается, когдаВы делаете выборку с сервера, убедитесь, что у вас есть только data, а не весь объект response вместе с мета из вызова.Кажется, что redux-logger выбрасывает этот bc, ему не нравится его структура.

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

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