如何在 expo/react 本机中使用 3rd 方模块

How to use 3rd party modules in expo/react native

我使用

创建了一个项目
expo init myApp

然后使用

安装了第 3 方 React 本机模块
expo install my-module

然后在我的App.js

import myClass from 'my-module';

那我运行

expo prebuild
expo start

然后我使用 iPhone 上的相机应用程序扫描条形码,它在 Expo Go

中打开

然后我看到我的初始屏幕并出现这些错误

NativeModule.myClass is null 

(打断导入线,抱怨链接不上,试过链接也没用,抱怨重建应用,但我该如何重建?)

"main" has not been registered. 

(如果 metro 运行ning 来自错误的文件夹、模块加载失败或未调用 'AppRegistry.registerComponent' 可能会发生)

我试过多个模块都没有成功。我觉得这与构建应用程序有关,但我不确定我缺少什么。

或者我是否误解了我应该能够在本地构建和测试而不需要 ipa/apk。

我只能使用设备模拟器测试第 3 方模块吗?

正方形是长方形,但长方形不是正方形。同样,react native 是 expo 但 expo 不是 react native。

  1. 确保在查找包时搜索 expo [feature required] 而不是 react [feature required]。您正在寻找的东西很可能已经在 expo 中,您不需要进行奇怪的安装。

  2. 导入遵循以下模式:import * as MyClass from 'my-module';

  3. 使用PowerShell。 expo 的部分脚本是在 PowerShell 中完成的,因此它有助于 运行 从那里获取所有内容以保持理智。

  4. Expo Go 应用程序仅适用于测试 UI 更改和交互性。它不适合测试特定于设备的功能,例如从传感器读取数据。使用模拟器或将其构建到您设备上的 运行 以进行最佳测试。在某些情况下,在本地网络上进行测试可能会奏效。