Статьи

6 инструментов для отладки React Native

Отладка является неотъемлемой частью разработки программного обеспечения. Благодаря отладке мы знаем, что не так, а что правильно, что работает, а что нет. Отладка дает возможность оценить наш код и исправить проблемы, прежде чем они будут запущены в производство.

отладка избранного изображения

В мире React Native отладка может выполняться разными способами и с использованием разных инструментов, поскольку React Native состоит из разных сред (iOS и Android), что означает, что существует множество проблем и множество инструментов, необходимых для отладки.

Благодаря большому количеству участников экосистемы React Native доступно множество инструментов отладки. В этом кратком руководстве мы рассмотрим наиболее часто используемые из них, начиная с меню разработчика.

Отладка в два раза сложнее, чем написание кода. Поэтому, если вы пишете код настолько умно, насколько это возможно, вы, по определению, недостаточно умны для его отладки. Брайан В. Керниган

Меню разработчика

меню разработчика

Меню разработчика в приложении — это ваши первые ворота для отладки React Native, в нем есть много опций, которые мы можем использовать для разных целей. Давайте разберем каждый вариант.

  • Перезагрузить : перезагрузка приложения
  • Отладка JS Remote : открывает канал для отладчика JavaScript
  • Включить живую перезагрузку: приложение автоматически перезагружается при нажатии кнопки Сохранить.
  • Включить горячую перезагрузку : отслеживает изменения, внесенные в измененный файл
  • Toggle Inspector : переключает интерфейс инспектора, который позволяет нам проверять любой элемент пользовательского интерфейса на экране и его свойства, а также представляет и интерфейс, который имеет другие вкладки, такие как сеть, которая показывает нам вызовы HTTP и вкладку производительности.

Желтые ящики и красные ящики

RedBox

Красные ящики используются для отображения ошибок. Каждый раз, когда приложение выдает ошибку, оно отображает RedBox и описание ошибки. Вы можете отобразить его в любое время, написав console.error . Но это не работает в производственной среде, а это означает, что если в этой среде произойдет ошибка, приложение будет аварийно завершено и остановится.

RedBox твой друг. Одной из полезных особенностей этого сообщения является то, что он отображает ошибку и дает вам рекомендации по ее устранению, которых вы не найдете в консоли. Например, я часто пишу свойство стиля, которое не поддерживается React Native, или свойство, которое используется для определенного элемента, например, установку backroundImage для элемента View . Redbox выдаст ошибку, но также покажет список поддерживаемых свойств стиля, которые вы можете применить к View .

YellowBox

Желтые ящики используются для отображения предупреждений. Вы можете отключить их, добавив строку кода, показанную ниже, внутри index.js в корневом каталоге вашего приложения. Но это не рекомендуется, так как YellowBoxes очень полезны. Они предупреждают вас о таких вещах, как проблемы с производительностью и устаревший код. Вы можете использовать элемент YellowBox из Reaction react-native для отображения определенного предупреждения.

 import {YellowBox} from 'react-native'; YellowBox.ignoreWarnings(['Warning: ...']); 

Большинство предупреждений YellowBox связано с некоторыми плохими действиями в вашем коде. Например, вы можете получить предупреждение о том, что у вас есть eventListener который вы не удаляете при размонтировании компонента, или что вы устарели как компоненты и зависимости:

 warning: ViewPagerAndroid has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-community/viewpager' instead of 'react-native'. See https://github.com/react-native-community/react-native-viewpager 

Исправление этих проблем предотвратит множество ошибок и улучшит качество вашего кода.

Вы всегда можете узнать больше об отладке React Native в официальных документах .

Chrome’s DevTools

Chrome, возможно, является первым инструментом для отладки React Native. Обычно для отладки веб-приложений используется Chrome DevTools, но мы также можем использовать их для отладки React Native, поскольку он работает на JavaScript.

Чтобы использовать Chrome DevTools с React Native, сначала убедитесь, что вы подключены к тому же Wi-Fi, затем нажмите сочетание клавиш + R, если вы используете macOS, или Ctrl + M в Windows / Linux. Когда появится меню разработчика, выберите Debug Js Remotely . Это откроет отладчик JS по умолчанию.

Включить отладку Chrome

Затем проверьте этот адрес http://localhost:8081/debugger-ui/ в Chrome. Вы должны увидеть эту страницу:

реагировать нативный отладчик

Возможно, вам придется устранить неполадки на Android.

не удается подключиться к серверу на Android

Чтобы решить эту проблему, убедитесь, что ваша машина и устройство подключены к одному и тому же Wi-Fi, а затем добавьте android:usesCleartextTraffic="true" в android/app/src/main/AndroidManifest.xml . Если это не работает для вас, проверьте эти ссылки для других решений:

После успешного подключения к Chrome вы можете просто включить инспектор Chrome.

Инспектор хрома

Затем взгляните на журналы своего приложения React Native. Также ознакомьтесь с другими функциями, предлагаемыми Chrome DevTools, и используйте их с React Native, как и с любым веб-приложением.

Одним из ограничений использования Chrome DevTools с React Native является то, что вы не можете отлаживать стили и редактировать свойства стиля, как это обычно делается при отладке веб-приложений. Это также ограничено по сравнению с devtools React при проверке иерархии компонентов React.

Инструменты разработчика React

Для отладки React Native с помощью инструментов разработчика React необходимо использовать приложение для настольного компьютера. Вы можете установить его глобально или локально в своем проекте, просто выполнив следующую команду:

 yarn add react-devtools 

Или нпм:

 npm install react-devtools --save 

Затем запустите приложение, запустив yarn react-devtools , который запустит приложение.

реагировать на приложение devtools

Инструменты разработчика React могут быть лучшим инструментом для отладки React Native по следующим двум причинам:

  • Это позволяет отлаживать компоненты React.
  • Это позволяет отлаживать стили в React Native (моя любимая особенность этих инструментов разработчика!). Новая версия поставляется с этой функцией, которая также работает с инспектором в меню разработчика. Раньше было сложно написать стили, и пришлось ждать перезагрузки приложения, чтобы увидеть изменения. Теперь мы можем отлаживать и реализовывать свойства стиля и мгновенно видеть эффект от изменения, не перезагружая приложение.

реагировать devtools

Вы можете узнать больше об использовании приложения React’s Developer Tools здесь .

React Native Debugger

реагировать на родное приложение отладчика

Если вы используете Redux в своем приложении React Native, React Native Debugger , вероятно, подойдет именно вам. Это отдельное настольное приложение, которое работает на MacOS, Windows и Linux. Он объединяет DevTools от Redux и инструменты разработчика React в одном приложении, поэтому вам не нужно работать с двумя отдельными приложениями для отладки.

Отладчик React Native — мой любимый отладчик, который я обычно использую в своей работе с React Native. Он имеет интерфейс для Redux DevTools, где вы можете просматривать журналы и действия Redux, а также интерфейс для инструментов разработчика React, где вы можете проверять и отлаживать элементы React. Вы можете найти инструкции по установке здесь . Вы можете подключиться к этому отладчику так же, как вы открываете инспектор Chrome.

Использование React Native Debugger над DevTools в Chrome имеет ряд преимуществ. Например, вы можете переключить инспектор из меню Dev для проверки элементов React Native и редактирования стилей, которые недоступны в Chrome DevTools.

React Native CLI

Вы также можете использовать React Native CLI для некоторой отладки. Вы можете использовать его для отображения журналов приложения. Нажав на react-native log-android , вы увидите журналы db logcat на Android, а для просмотра журналов в iOS вы можете запустить react-native log-ios , а с console.log вы можете отправить журналы в терминал:

 console.log("some error") 

Затем вы должны увидеть логи в терминале.

реагировать родной лог андроид

Вы можете использовать React Native CLI, чтобы получить некоторую соответствующую информацию о библиотеках и зависимостях, которые вы используете в своем приложении, запустив react-native info о react-native info на терминале. Он показывает нам некоторую полезную информацию об инструментах, которые вы используете. Например, вот пример вывода, когда вы запускаете react-native info :

реагировать родную информацию

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

Резюме

Существует множество инструментов для отладки React Native в дополнение к тем, которые мы рассмотрели здесь. Это действительно зависит от конкретных потребностей вашего проекта. В основном я использую React Native Debugger Desktop, потому что я часто работаю с Redux, и он объединяет множество инструментов в одном приложении, что прекрасно и экономит время.

Пожалуйста, напишите мне в Twitter, если вы хотите больше рассказать об инструментах для отладки React Native и о React Native в целом. Я хотел бы услышать от вас!