什么是反应本机链接?

Ngu*_*Duy 22 react-native react-native-android

什么是目的反应本地链接命令?

And*_*rew 37

注意:从React-Native 0.60.0链接包开始使用react-native link就变得多余了。自动链接已添加到React-Native CLI中,这意味着iOS现在将使用cocoapods,而Android将使用gradle。您可以在此处阅读有关自动链接的更多信息。

什么react-native link

react-native link是安装本机依赖项的自动方法。它是在项目中手动链接依赖项的替代方法。它适用于Android和iOS。

手动链接项目时,大多数步骤都是相同的,因此使用react-native link可以使您以较少的麻烦安装本地依赖项,而不必重复键入类似的代码或执行类似的操作。

但是,应注意的是,运行react-native link并不一定会完全链接软件包,有时需要执行其他步骤,并且仔细阅读安装说明。

在安装依赖项并将其链接之前,请务必仔细阅读说明。


iOS注意事项

如果您的项目使用的是CocoaPods,并且您链接的依赖项带有a,.podspec则在您使用run时react-native link,它将更新您的Podfile。这不是将文件直接添加到Xcode项目中。您还必须pod installios目录中运行,否则将无法完全安装本机依赖项。

有时使用安装进行安装CocoaPods可能会导致更多问题,并非所有需要安装的依赖项CocoaPods都可以始终按照我在此SO 回答中概述的步骤来停止react-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本机依赖项时出现的。我认为在阻止此后更新中的更新方面已经取得了一些进展,但是古老的格言在这里适用于一次被咬,两次被害羞


链接良好实践

使用时,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 更改并合并分支。

手动链接

如果您希望手动链接本机依赖项,​​则应该按照依赖项网站上的说明进行操作,也可以查看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 取代 react-native-link

自动链接是CLI内置的一种机制,它允许添加与本机组件的依赖关系,从而使React Native变得简单:

yarn add react-native-webview

自动链接是对本机链接的替代,它带来了新功能(例如能够轻松集成iOS上的本机依赖项的功能)并修复了一些长期存在的问题。

一旦完全实现,它将使添加带有本机代码的依赖关系到您的项目变得更加容易。


And*_*eam 7

链接本机库意味着您要将已经实现的模块集成到您的应用程序或模块中,以完成您的本机模块功能。

集成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.
Run Code Online (Sandbox Code Playgroud)

现在相反,

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. 
Run Code Online (Sandbox Code Playgroud)

  • 同样的步骤为什么要解释两次? (12认同)

小智 6

当您安装了包含本机内容(android 或 ios)的库时,您需要链接到组件react-native 库。像这样

react-native link react-native-sound-player
Run Code Online (Sandbox Code Playgroud)