【问题标题】:Share common components between two react native applications在两个 React Native 应用程序之间共享通用组件
【发布时间】:2017-07-05 19:16:39
【问题描述】:

我有一个现有的 react native 应用程序,其中包含我制作的某些自定义组件。现在我正在尝试制作一个新应用程序并使用其中一些组件,因此在发生更改时无需复制/粘贴。我们将这些应用程序命名为 app1 和 app2。

这是我尝试过的:

  1. 保持文件结构 应用程序1 => 源代码, 节点模块, ios等

应用程序2 => 源代码, 节点模块, ios等

共享文件夹 => 组件, 节点模块

这不起作用,因为 shared_folder 需要 node_modules 来导入 react、react-native 等。Npm 抱怨它正在查看的所有重复节点模块

  1. 然后我尝试了结构

app_folder => 节点模块, 应用程序1, 应用程序2, 共享文件夹

这不起作用,因为在运行 npm start 时,它不知道要查找哪个 index.ios.js。此外,app1 和 app2 项目的 xcode 一直抱怨找不到某些反应文件。

我的问题是,构建这 2 个应用程序以便我可以在它们之间共享某些组件的最佳方式是什么?

【问题讨论】:

    标签: react-native


    【解决方案1】:

    这里是a link,可以回答您的问题。

    在 src 文件夹中,您可以找到 3 个不同的项目:react native、expo 和 web(react)。还有一个名为 shared 的文件夹,用于存储常用功能和常用的 react 原生模块。有一个名为 Sample 的模块,它用于 expo 和 react native 项目,只是为了展示如何从共享程序集中导入常见的 react native 模块。

    如果你下载了项目记得运行

    yarn
    

    在主路由目录和每个项目目录相同。 如果要运行 expo 项目,需要进入 expo 项目目录并使用命令

    yarn run android
    

    如果你想运行rn项目你需要进入rn项目目录并使用命令

    react-native run-android
    

    【讨论】:

      【解决方案2】:

      不确定我是否了解您的确切情况,但通常对多个项目有意义的共享组件应该放在他们自己的模块中(您可以创建私有范围的 npm 包)。假设有一些逻辑将它们组合在一起

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-12
        • 1970-01-01
        • 2014-02-16
        • 1970-01-01
        • 2018-04-19
        • 2017-06-07
        • 2017-03-20
        • 1970-01-01
        相关资源
        最近更新 更多