如何在React Native上使用eval下载和运行代码?

时间:2017-12-31 07:28:01

标签: javascript react-native eval

上下文
我们已经在使用一个框架来开发我们的移动应用程序,它与React Native非常相似(我们用JS编写所有东西,它在Android和iOS上运行)。
我们的框架提供了一些内置的API来在屏幕上显示内容并执行其他操作 示例:

function homePage() {
   List.addTitle("Welcome");
   List.addButton("Next", "goToNextPage()") // List.addButton(label, onclick)
   List.show() // will display currently what is in the buffer or List
}

在Android上,当用户登录时,他们将下载最新代码并运行它(通过eval)。在iOS上,我们需要制作新版本并在每次需要发布新版本时提交给Apple

目标
目标是迁移到React Native并仅重新实现旧平台的基本API(如List),以便我们可以继续使用我们已编写的代码。

我已经看过像CodePush / AppCenter这样的解决方案,但我们的代码还没有在ReactNative中,所以我认为它不适用于我们。
question和此one是相关的,但没有具体的答案。

我写了一篇小Snack来了解我希望它如何运作。

  1. Login组件处理登录
  2. SignIn组件会破坏代码并呈现该代码中的内容
  3. 问题

    1. 我必须在与List相同的文件中重新实现SignIn.js API。 如果我尝试导入它,那么List将在eval中未定义。 为什么呢?

    2. 使用此方法,每次刷新页面或导航到其他屏幕时,下载的代码都必须为eval。我担心表演,有没有更好的方法呢?

    3. 非常感谢你的帮助

0 个答案:

没有答案