开发者问题收集

Expo Bare Workflow - 如何使用和设置 react-native-pdf 和 react-native-blob-util - React Native

2022-04-07
1521

在 react native expo bare 工作流中使用本机模块的正确方法是什么? 我想使用 react-native-pdf react-native-blob-util

但我收到错误:

TypeError:null 不是对象(评估“ReactNativeBlobUtil.DocumentDir”)

并且

不变违规:“main”尚未注册。如果发生以下情况,可能会发生这种情况:

  • Metro(本地开发服务器)从错误的文件夹运行。检查 Metro 是否正在运行,停止它并在当前项目中重新启动它。

我有以下链接: https://openbase.com/js/react-native-pdf

我在 expo 文档中读到我们可以使用 expo 裸工作流来使用本机模块。现在我的项目是裸工作流。在使用 expo 裸工作流构建我的应用程序的过程中,我在使用 react-native-pdf react-native-blob-util 时出现错误。>

我希望当用户单击按钮时,应用程序将打开来自我的服务器的源链接 pdf 文件。

是否可以在 expo 裸工作流中使用此本机模块进行设置,因为文档中的裸工作流是这样的:

https://docs.expo.dev/introduction/managed-vs-bare/

裸工作流

In the bare workflow the developer has complete control, along with the complexity that comes with that. You can use all packages from the Expo SDK, development builds, and all Expo and EAS Services. Configuration with app.json / app.config.js is mostly not supported in this context; instead, you will need to configure each native project directly.

请给我这个问题的解决方案?如果不可能的话,请告诉我使用其他最好的 pdf 查看器。

2个回答

终于解决了问题。

Native Module 无法在 Expo Go 中运行

因此 expo publish 将无法工作,因为它是在 Expo Go 中运行的。

相反,我们必须更改为在 native 中运行。用例示例: npm run android expo run:android 。它将在我们的代码中使用 native module 运行到 bare working 中。

Dennis Liu
2022-04-14

我遇到了同样的问题。对我来说,解决方法是先重建开发客户端。

npx expo start --dev-client -c

然后运行 ​​android/iOS。

无需使用 expo run:android 进行构建。

Erik Kodnar
2022-09-29