Рассмотрим что нового, команда разработки 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.