Вышла новая версия React-Native

Рассмотрим что нового, команда разработки React-Native, добавила в этой версии.

LogBox

LogBox — это полностью переработанный вывод логово на экран эмулятора. В 0.62 версии LogBox был как опция, в данной версии LogBox включен по умолчанию.

В LogBox была решена проблема вывода ошибок и предупреждений, раньше ошибки и предупреждения были слишком объемными, плохо отформатированы и выполняли 3 цели:

  • Краткий: Журналы должны содержать минимальный объем информации, необходимый для отладки проблемы.
  • Форматированный: Журналы должны быть отформатированы таким образом, чтобы вы могли быстро найти нужную вам информацию.
  • Управляемый: Журналы должны быть управляемыми, чтобы вы могли исправить проблему и двигаться дальше.

Для достижения этих целей LogBox включает в себя:

  • Log notifications(Уведомление об ошибках): Мы изменили дизайн предупреждений и добавили поддержку ошибок, чтобы все сообщения console.warning и console.log отображались в виде уведомлений вместо того, чтобы показывать внизу экрана.
  • Code Frames(Фреймы кода): Каждая ошибка и предупреждение теперь включает фрейм кода, который показывает исходный код журнала прямо внутри приложения, позволяя вам быстро определить источник вашей проблемы.
  • Component Stacks (Стеки компонентов:): Все стеки компонентов теперь отделены от сообщений об ошибках и помещены в свою секцию, где видны три верхних кадра. Это дает вам единое, последовательное пространство для получения информации о стеке фреймов, которое не загромождает сообщение журнала.
  • Stack Frame Collapsing(Скрытие стека ошибки): По умолчанию, теперь мы свертываем фреймы стека вызовов, не связанные с кодом вашего приложения, чтобы вы могли быстро увидеть проблему в вашем приложении и не просеивать через React Native internals.
  • Syntax Error Formatting(Новый формат вывода сообщений об ошибках): Мы улучшили форматирование синтаксических ошибок и добавили фреймы кода с подсветкой синтаксиса, чтобы вы могли увидеть источник ошибки, исправить ее и продолжить работу.

Мы изменили дизайн отображания ошибок в улучшенный визуальный дизайн, который согласуется между ошибками и предупреждениями и позволяет просматривать все журналы в одном приятном пользовательском интерфейсе.

С этим изменением мы также отказываемся от YellowBox в пользу LogBox API:

  • LogBox.ignoreLogs(): Эта функция заменяет YellowBox.ignoreLogs([]) как способ заглушить любые лог-файлы, которые соответствуют заданным строкам или регексам.
  • LogBox.ignoreAllLogs(): Эта функция заменяет console.disableYellowBox в качестве способа отключения уведомлений об ошибках или предупреждениях. Примечание: эта функция отключает только уведомления, неисправленные ошибки все равно откроют полноэкранный LogBox.

В 0.63 версии мы предупредим при использовании этих устаревших модулей или методов. Пожалуйста, обновите свои сайты/приложения до того, как они будут удалены в 0.64 версии.

Для получения дополнительной информации о LogBox и отладке react native, смотрите документацию here.