Логи и консоль

В React Native для вывода отладочной информации и диагностики ошибок используется стандартный API console, такой как console.log(), console.warn() и console.error(). Эти вызовы работают так же, как в браузере, но их отображение зависит от среды разработки.

Где появляются логи

  • При запуске через Metro (npx react-native run-android / run-ios или expo start) сообщения из console.log() выводятся в терминал, где запущен Metro-сервер.
  • Если подключён Flipper, все логи автоматически перехватываются и отображаются во вкладке Logs с возможностью фильтрации по уровню (info, warn, error).
  • В браузерном отладчике (устаревший режим через Dev Menu → Debug) логи появляются в консоли DevTools браузера.

Типы сообщений и их отображение

  • console.log('Сообщение') — обычное информационное сообщение. В терминале отображается без выделения.
  • console.warn('Предупреждение') — жёлтое уведомление на устройстве («Yellow Box»). Не останавливает выполнение, но указывает на потенциальную проблему (например, устаревшее API).
  • console.error('Ошибка') — красный экран ошибки («Red Box»). Прерывает выполнение и показывает стек вызовов. Используется при критических ошибках, таких как синтаксические ошибки или необработанные исключения.

Как читать ошибки

Красный экран содержит:

  • Краткое описание ошибки.
  • Имя файла и номер строки, где произошла ошибка.
  • Стек вызовов — цепочка функций, приведших к ошибке.

Пример ошибки:

TypeError: undefined is not an object (evaluating 'user.name')

Это означает, что переменная user равна undefined, и попытка прочитать свойство name завершилась неудачей.

Рекомендации

  • Используйте console.log() умеренно — не оставляйте их в production-коде.
  • Для временного отключения всех логов можно переопределить console.log в production-сборке.
  • Жёлтые предупреждения стоит исправлять: они часто указывают на проблемы, которые в будущем могут стать ошибками.

Понимание логов и умение читать ошибки — ключевой навык при разработке мобильных приложений, особенно учитывая отсутствие привычной браузерной консоли.