バグの報告方法
React Native のバグを報告することは、プロジェクトへの貢献を開始する最良の方法の1つです。私たちは、新しいバグ報告を処理するための主要なチャネルとしてGitHub issuesを使用しています。
新しいバグを報告する前に、既存のバグがイシュートラッカーにすでに存在するかどうかを検索してください。ほとんどの場合、他の誰かが同じ問題をすでに経験しているため、それが最も速い解決策を見つける方法です。
イシュートラッカーでバグが見つからない場合は、新しいバグを報告できます。新しいイシューを作成したら、以下のことを確認してください。
- 問題の説明を追加する。
- イシューテンプレートの指示に従う。
- 使用している React Native のバージョンを追加する。
npx @react-native-community/cli infoコマンドの出力結果を追加する。- 該当する場合は、問題のスクリーンショットや動画を追加する。
すべてのバグ報告には、何が起こっているのかを理解し、デバッグに役立つコードである再現コードも含まれている必要があります。
受け取るイシューの数が多いため、再現コードは必須です。再現コードのないイシューは調査できず、ほとんどの場合閉じられます。
再現コードの提供
再現コードの目的は、バグを再現する方法を提供することです。再現コードがなければ、バグを理解することも、修正することもできません。
再現コードは最小限であるべきです。依存関係をできるだけ少なくする(理想的にはreact-native以外はなし)ことで、バグをより適切に切り分けることができます。GitHubで誰かが再現コードを求めているとき、彼らはあなたのソースコードのすべてを求めているわけではありません。
代わりに、報告しているのと同じクラッシュ/バグ/イシューを再現する最小限のプロジェクトを作成する必要があります。
このプロセスは非常に重要です。なぜなら、イシューは再現コードを作成することで実際に解決されることが多いからです。再現コードを作成することで、問題が特定のセットアップに関連しているのか、それとも実際にReact Native内のバグなのかを理解しやすくなります。
React Native に寄せられるトラフィックの量が多いため、有効な再現コードとして次のいずれかのみを受け入れられます。
- ほとんどのバグについて:バグを再現するためにRNTesterPlayground.jsを編集したプルリクエストを送信してください。
- バグがUI関連の場合:Snack。
- バグがビルド/アップグレード関連の場合:私たちのReproducer Templateを使用したプロジェクト。
RNTesterPlayground.js
再現コードを提供する最良の方法は、RNTesterPlayground.jsファイルを編集するプルリクエストをReact Nativeに対して開くことです。
この再現コードはreact-nativeのmainに対してコードを実行し、バグを調査して修正する最速の方法です。
RNTesterPlayground.jsファイルは、リファレンスAppであるRN-Testerアプリケーション内にあります。その動作方法やビルド方法については、専用のREADMEファイルで詳細を確認できます。
この種の再現コードの例はこちらです:モーダルのレイアウト問題の再現 #50704。
RNTesterPlayground.jsを編集すると、RNTesterのPlaygroundタブでコードが実行されているのを確認できます。

Expo Snack
ほとんどのUI関連のバグは、Expo Snackを使用して再現できます。
Expo Snack を使うと、ブラウザで React Native コードを実行し、すぐにレンダリングされるのを確認できます。
Expo Snack で問題を再現できたら、Saveボタンをクリックして、イシュー報告に添付できる共有可能なリンクを取得します。
再現テンプレート
ほとんどのビルド関連のバグについては、代わりにコミュニティ再現テンプレートを使用して再現する必要があります。
このテンプレートは、React Native Community CLI で実行される小さなプロジェクトを作成し、ビルドの問題を示すために使用できます。
このテンプレートには、GitHub Actions で既にセットアップされた独自の CI も付属しており、これにより発生している可能性のあるビルドの問題を発見するのに役立ちます。
このテンプレートを使用するには
- GitHubでこのテンプレートを使用ボタンをクリックして、テンプレートから新しいプロジェクトを作成します。
- 新しく作成したリポジトリをローカルにクローンします。
- 問題を再現するための変更を適用します。
- 作成している新しいバグ報告にリポジトリリンクを添付します。