如何制作需要特定导入的混合包 React/React-Native

Posted

技术标签:

【中文标题】如何制作需要特定导入的混合包 React/React-Native【英文标题】:How to make an hybrid package React/React-Native that needs specific imports 【发布时间】:2017-05-15 06:05:37 【问题描述】:

是否可以为需要特定导入的 React 和 React-Native 创建一个混合包,例如使用 React-Native 我必须导入 AsyncStorage,但对于 React(使用 localStorage)我不需要这个。

所以我想知道使用条件检测应用程序是否为 React-Native 来处理这两种情况是否可行。

【问题讨论】:

【参考方案1】:

为了检测应用程序是否为 React-Native,您需要使用特定于平台的逻辑。根据this commit,您应该可以通过以下方式进行检查:

navigator.product === 'ReactNative'

另请参见此处了解特定平台: https://facebook.github.io/react-native/docs/platform-specific-code.html

【讨论】:

我对其进行了测试,效果很好,但我仍然坚持导入库,以防它是否为 react-native。 动态导入是通过require 完成的。见这里:***.com/questions/35914712/… 其实已经通过在上下文中注入库的全局变量来解决了。【参考方案2】:

对于那些可能对未来感兴趣的库的实现,需要特定的 React 导入和特定的 React-Native 导入,但不能混合使用,您需要为您的库创建一个商店,如果它可以用 React 代码初始化,你可以在你的代码中初始化并创建一个 setter 函数,该函数将创建一个新的 store 来注入特定的依赖项。

【讨论】:

以上是关于如何制作需要特定导入的混合包 React/React-Native的主要内容,如果未能解决你的问题,请参考以下文章

如何使用特定和 exaclty 包版本重新制作角度工作区?

如何制作中文Javadoc包,并导入到Eclipse

如何制作混合路径道路类型? (捕捉到道路和简单的折线)Google Maps API

如何将混合移动应用程序制作为 ipad/iphone 应用程序?

如何从从 NuGet 包获得的 RCL 导入 Razor 页面?

使用 `importlib` 从 Python 模块中仅导入特定类