web-dev-qa-db-ja.com

反応ネイティブリンクとは何ですか?

react-native linkコマンドの目的は何ですか?

38

注:React-Nativeからの0.60.0react-native linkを使用したパッケージのリンクは冗長になりました。 AutolinkがReact-Native CLIに追加されました。つまり、iOSはcocoapodsを使用し、Androidはgradleを使用します。自動リンクの詳細については こちら を参照してください。

react-native linkとは何ですか?

react-native linkは、ネイティブ依存関係を自動的にインストールする方法です。これは、プロジェクトで依存関係を手動でリンクする代わりになります。 AndroidとiOSの両方で機能します。

プロジェクトを手動でリンクする場合、手順の大部分は同じであるため、react-native linkを使用すると、ネイティブの依存関係を簡単にインストールでき、同様のコードを入力したり、同様のアクションを繰り返し実行したりする必要はありません。

ただし、react-native linkを実行してもパッケージが完全にリンクされるとは限らないことに注意してください。追加の手順が必要になる場合があるため、次のように慎重にチェックする必要がありますインストール手順。

依存関係をインストールしてリンクする前に、必ず指示をよく読んでください。


iOSに関する考慮事項

プロジェクトがCocoaPodsを使用していて、リンクしている依存関係に.podspecがある場合、run react-native linkを使用すると、 Podfileを更新します。これは、ファイルをXcodeプロジェクトに直接追加する代わりです。また、iosディレクトリ内でpod installを実行する必要があります。そうしないと、ネイティブの依存関係が完全にインストールされません。

CocoaPodsを使用してインストールすると、より多くの問題が発生する可能性があり、すべての依存関係をCocoaPodsでインストールする必要があるわけではありません。これで説明した手順を常に実行できますSO answerreact-native linkを停止してPodfileに依存関係を追加することは理想的ではありませんが、回避策です。一部の依存関係はPodfileなので、依存関係でpodsを実行する必要がない場合にのみ、これを行う必要があります。


react-native linkまたはreact-native link dependency-name

依存関係をリンクするときにreact-native linkを使用する必要がありますか、それともより明示的にreact-native link dependency-nameを使用する必要がありますか?

私の経験から、react-native link dependency-nameを使用することをお勧めします。これは、リンク可能なすべての依存関係をreact-native linkがリンク(または再リンク)しようとするためであり、これによりコードが重複する可能性があります。私が経験した問題のほとんどは、Android=ネイティブ依存関係がリンクされているときに発生しました。これを後続の更新で発生させないようにするいくつかの前進があったと思いますが、古い格言がここに適用されます一度噛まれ、2回恥ずかしがり屋


良い実践をリンクする

react-native link dependency-nameを使用するときは、悪用されないように適切な方法に従う必要があります。試してみた依存関係が期待どおりに機能せず、リンク処理中に追加されたすべてのコードを削除するのが難しい場合があります。 (Xcodeプロジェクトファイルは、それらに慣れていない場合、悪夢になることがあります)。

これは、依存関係をインストールしてリンクする方法です。

  1. gitなどのバージョン管理を使用していることを確認してください。
  2. コードが完全にコミットされ、変更が保存されていないことを確認してください。
  3. 新しいブランチを作成し、チェックアウトします。
  4. 依存関係をインストールするnpm i dependency-name
  5. 次に、依存関係をリンクしますreact-native link dependency-name
  6. 依存関係に必要な追加のインストール手順を実行します。依存関係については、インストール手順を参照してください。
  7. コードが新しい依存関係で機能することを確認します。
  8. commmitはブランチを変更してマージします。

手動リンク

ネイティブの依存関係を手動でリンクする場合は、依存関係のWebサイトの指示に従うか、react-nativeが提供するドキュメントを参照する必要があります。

現在、手動でリンクする方法についての説明しかありません iOS プロジェクト。

Androidを手動でリンクするには、次の場所を変更する必要があります。

  1. settings.gradle
  2. app/build.gradle
  3. MainApplication.Java

常に行う必要がある正確な変更については、依存関係の手動リンク手順を確認する必要があります。


リンクする必要がありますか?

一部の依存関係はJavaScriptで記述されたコードのみを使用しているため、依存関係に依存しているため、それらをリンクする必要はなく、react-native link dependency-nameを実行してもメリットはありません。

ただし、依存関係にネイティブコードが含まれている場合は、リンクする必要があります。手動またはreact-native link dependency-nameを使用して。

依存関係をリンクする必要があるかどうかはどうすればわかりますか?

まず、ウェブサイト、githubリポジトリ、またはnpmjs.comページで依存関係を確認する必要があります。通常、インストール後に依存関係をリンクするかどうかを指示する指示があります。

リンクに関する指示が見つからない場合は、おそらくリンクする必要はありません。

それでもわからない場合は、依存関係のメンテナに確認してください。

とにかくリンクを実行できますか?

はい、リンクするものがない場合は何もできません。ただし、問題を回避するために、常にreact-native link dependency-nameで実行してください。

いつリンクを実行しますか?

依存関係をインストールした後でのみ実行します。依存関係をインストールした直後に実行することをお勧めします。次に、簡単にデバッグできるように、新しい依存関係をインストールする前に、それが機能することを確認する必要があります。

依存関係ごとに複数回実行する必要はありません。

リンクは純粋にネイティブであり、コンポーネントはJavaScriptであるため、コンポーネントの数やJavaScriptコードの変更によるリンクへの影響はありません。


オートリンクとは何ですか?

オートリンクは、react-native-cliに追加される新機能です。 autolinkの詳細については here を参照してください。

Autolinkreact-native-linkを置き換えます

自動リンクは、CLIに組み込まれたメカニズムであり、React Nativeのネイティブコンポーネントとの依存関係を次のように簡単に追加できます。

yarn add react-native-webview

自動リンクは、新しい機能(iOSのネイティブの依存関係を簡単に統合する機能など)をもたらし、長年の問題のいくつかを修正する反応ネイティブリンクの置き換えです。

完全に実装されると、ネイティブコードを含む依存関係をプロジェクトに簡単に追加できるようになります。

48
Andrew

ネイティブライブラリをリンクするということは、実装済みのモジュールをアプリケーションまたはモジュールに統合して、reactネイティブのモジュール機能を完成させることを意味します。

Lib(Android)を統合する手順:

1)新しいパッケージにパッケージ名を追加します()2)依存関係をsettings.gradleファイルとメインアプリケーションのGradle、つまりapp/gradleファイルに追加します。 3)Gradleで変更を加えたので、プロジェクトGradleを同期します。

あなたが実行しなければならない以下のようなすべての手動の​​手順

1) Go to your project's home dir using cmd. 
2) run npm install 
3) Thereafter run rnpm link or react-native link 
4) see ios folder in your project folder and if you find any pod file then run pod install after navigating into ios folder in cmd.

今代わりに、

1) Go to your project's home dir using cmd. 
2) run npm install 
3) Thereafter run rnpm link or react-native link 
4) see ios folder in your project folder and if you find any pod file then run pod install after navigating into ios folder in cmd. 
5
Android Team

ネイティブコンテンツ(Androidまたはios)を含むライブラリをインストールした場合は、コンポーネントの反応ネイティブライブラリへのリンクを要求する必要があります。このような

react-native link react-native-sound-player

ネイティブコンテンツを含むサードパーティのライブラリをインストールした場合、Androidおよびiosで依存関係をリンクする必要があります。react-nativeリンクは、gradlewおよびpodファイルに依存関係を含める責任があります。

react-native-vector-iconsパッケージをインストールしたとすると、gradlewファイルにリンクする必要があります。新しいバージョンのreactネイティブ0.60には自動リンクがあります。

npm install react-native-vector-icons

react-native link react-native-vector-icons

0