在create-react-app / webpack中重新确定基本问题

时间:2017-12-19 14:10:28

标签: reactjs webpack create-react-app

虽然我使用create-react-app创建了一个功能正常的反应应用程序,但我是一个相对较新的反应者。

反应的一个卖点似乎是你可以逐步而不是一次性地迁移代码。我现在正在迁移现有的Web应用程序,并尝试查看是否可以在create-react-app生态系统中以最少的修改来运行它;第2步将反应它。我被困在第1步。(我想我已经管理了第0步 - 让它完全编译 - 虽然这需要很长时间。)

我已将create-react-app index.html替换为我自己的index.html,将create-react-app index.js替换为我自己的主js文件,重命名为{{1 }}。过去,我的主文件加载了来自index.js的{​​{1}}标记,其所有功能都进入了全局范围。显然现在他们没有进入全球范围。

<script>中,我有:

index.html

index.html中,我有:

<button type="button" id="connectButton" class="btn btn-success" onclick="connect()">
    Log on
</button>

过去单击该按钮会调用该函数,因为它位于全局范围内。现在,单击该按钮会生成“index.js”,因为它显然不会进入全局范围。

有人低估了我对这个问题的原始版本,也许是因为我问的是一些不是“做事的反应方式”。我完全意识到这一点,但让人们做出“反应方式”的方法是向他们展示他们可以逐步迁移代码库的方式。所以我无法想象我是唯一一个遇到这个问题的人。不过,我在网上搜索的尝试并没有提出任何帮助。

附录:我看到我可以通过在函数定义之后插入function connect() { ... } 来解决这个问题,函数定义将它放在全局范围内。我将补充一点作为这个问题的答案,但也许有人有更好的解释或解决方法,在这种情况下我会接受他们的答案。谢谢。

1 个答案:

答案 0 :(得分:0)

正如我在问题的编辑版本中所说,在函数定义之后插入window.connect = connect;会将其置于全局范围内,因此似乎是一种有效的解决方法。