【问题标题】:load component dynamically to react native app from external url动态加载组件以从外部 url 响应本机应用程序
【发布时间】:2019-02-22 19:53:50
【问题描述】:

是否可以从外部 URL 动态地将组件加载到捆绑的 react-native 应用程序中?

我最终想要实现的示例

const id = await fetch('http://example.com/getid/');

import CustomModule from `http://example.com?id=${id}`

export default class App extends React.Component {
  render() {
  return (
    <View style={styles.container}>
      <CustomModule />
    </View>
  );
 }
}

【问题讨论】:

标签: reactjs react-native


【解决方案1】:

目前无法导入外部 URL 组件。

如果您在外部链接上托管了一个组件,请将其克隆/复制/下载到您的项目中并导入。

如果您有一组通用组件,您可以将它们托管在私有 npm 注册表中,然后将它们添加到 package.json 中并导入到您的代码中。

【讨论】:

  • 谢谢。我知道。我正在尝试构建一个应用程序,开发人员可以动态添加他们的插件(组件),并且该应用程序可以加载这些组件而无需更新应用程序源代码。
  • 我不确定我是否理解你,但如果你的意思是实时更新而不再次推送应用程序,这是可能的,但在另一种方式,“实时推送”或“实时更新”有几个允许您这样做的服务,例如 CodePush docs.microsoft.com/en-us/appcenter/distribution/codepush/… 和 Expo OTA docs.expo.io/versions/latest/guides/configuring-ota-updates
  • 谢谢。我知道 OTA 更新。问题是,在 OTA 中,每次更改都需要更新和推送整个应用程序。如果我可以从 URL 获取组件,那么我不需要更新整个应用程序。我已经使用 angularJS 完成了这项工作。在那里你可以eval() JS 代码然后 $compile 它们成为新的指令。但是我不能对 react-native 做同样的事情。我在问题中的示例解释了我想要实现的目标。我不想通过 OTA 更新整个应用程序,我只想从外部 URL 动态获取组件。 -最佳
  • 这个@imana97 你觉得怎么样?渴望听到你的结果。
  • @StevePascoe 不幸的是,还没有人能回答这个问题。我与很多人离线讨论了这个问题,没有人有最好的解决方案。看起来 facebook 为编译 react-native 代码而创建的东西有点神秘。有人告诉我分叉 Expo 并使用他们的代码推送机制用新组件更新整个代码库。除此之外,我没有任何其他解决方案。
猜你喜欢
  • 2016-11-07
  • 2018-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多