メインコンテンツへスキップ

バグの報告方法

React Nativeのバグを報告することは、プロジェクトに貢献を始めるための最良の方法の一つです。私たちは新しいバグ報告を処理するための主要なチャネルとして、GitHubのissueを使用しています。

新しいバグを報告する前に、issueトラッカーで既存のバグがないか検索してください。ほとんどの場合、誰かが既に同じ問題を経験しているため、それが最も早く解決策を見つける方法です。

issueトラッカーであなたのバグが見つからない場合は、新しいissueを開くことができます。新しいissueを作成したら、次のことを確認してください。

  • 問題の説明を追加する。
  • issueテンプレートの指示に従う。
  • 使用しているReact Nativeのバージョンを追加する。
  • npx @react-native-community/cli infoコマンドの出力を追加する。
  • 該当する場合は、問題のスクリーンショットとビデオを追加する。

すべてのバグ報告には、何が起こっているかを理解し、デバッグに役立つコードである**再現手順**を含める必要があります。

警告

多くのissueを受け取るため、再現手順は**必須**です。再現手順のないissueは調査できず、ほとんどの場合クローズされます。

再現手順の提供

再現手順の目的は、バグを*再現する*方法を提供することです。再現手順がなければ、バグを理解することも、修正することもできません。

再現手順は**最小限**であるべきです。依存関係をできるだけ少なくする(理想的には`react-native`以外はなし)ことで、バグをより適切に特定するのに役立ちます。GitHubで再現手順を求められている場合、**すべてのソースコード**を求めているわけではありません。

代わりに、報告しているのと同じクラッシュ/バグ/問題を再現する**最小限の**プロジェクトを作成する必要があります。

このプロセスは非常に重要であり、多くの場合、再現手順を作成することで実際に問題が解決されます。再現手順を作成することで、問題が特定のセットアップに関連しているのか、それとも実際にReact Nativeの内部にあるバグなのかを理解しやすくなります。

React Nativeでのトラフィック量が多いため、以下のいずれかのみを有効な再現手順として受け入れます。

  1. ほとんどのバグの場合:バグを再現するために編集されたRNTesterPlayground.jsを含むプルリクエストを送信してください。
  2. UI関連のバグの場合:Snack
  3. ビルド/アップグレード関連のバグの場合:私たちのReproducer Templateを使用したプロジェクト。

RNTesterPlayground.js

再現手順を提供する最善の方法は、RNTesterPlayground.jsファイルを編集するプルリクエストをReact Nativeに対して開くことです。

ヒント

この再現手順は、react-nativemainに対してコードを実行するため、バグを調査し修正するための**最速**の方法です。

RNTesterPlayground.jsファイルは、私たちの参照アプリであるRN-Testerアプリケーション内にあります。その動作方法と構築方法については、専用のREADMEファイルで詳しく読むことができます。

この種の再現手順の例は、こちらにあります:モーダルレイアウトの問題を再現 #50704

RNTesterPlayground.jsを編集すると、RNTesterの**Playground**タブでコードが実行されているのを確認できます。

Step one

Expo Snack

ほとんどのUI関連のバグについては、Expo Snackを使用して再現できます。

Expo Snackを使用すると、ブラウザでReact Nativeコードを実行し、すぐにレンダリングされるのを確認できます。

Expo Snackで問題を再現できたら、**保存**ボタンをクリックして、issue報告に添付できる共有可能なリンクを取得してください。

再現テンプレート

ほとんどのビルド関連のバグについては、代わりにコミュニティ再現テンプレートを使用して再現する必要があります。

このテンプレートは、React Native Community CLIで実行される小さなプロジェクトを作成し、ビルドの問題を示すために使用できます。

このテンプレートには、GitHub Actionsで既に設定された独自のCIも付属しており、発生する可能性のあるビルドの問題を特定するのに役立ちます。

このテンプレートを使用するには

  1. GitHubのこのテンプレートを使用ボタンをクリックして、テンプレートから新しいプロジェクトを作成します。
  2. 新しく作成したリポジトリをローカルにクローンします。
  3. 問題を再現するために変更を適用します。
  4. 作成している新しいバグ報告にリポジトリのリンクを添付します。