Reactjs 创建react应用程序/网页包中的基本问题重新确定范围
虽然我已经使用Reactjs 创建react应用程序/网页包中的基本问题重新确定范围,reactjs,webpack,create-react-app,Reactjs,Webpack,Create React App,虽然我已经使用create-react-app创建了一个功能正常的react-app,但我对react还是比较陌生 react的一个卖点似乎是您可以逐段迁移代码,而不是一次迁移所有代码。我现在正在迁移一个现有的web应用程序,并尝试看看我是否可以让它在CreateReact应用程序生态系统中以最小的修改运行;第2步将是对其进行反应。我被困在第一步。(我想我已经成功地完成了第0步——让它编译,尽管这需要很长时间。) 我已经用我自己的index.html替换了create react appinde
create-react-app
创建了一个功能正常的react-app,但我对react还是比较陌生
react的一个卖点似乎是您可以逐段迁移代码,而不是一次迁移所有代码。我现在正在迁移一个现有的web应用程序,并尝试看看我是否可以让它在CreateReact应用程序生态系统中以最小的修改运行;第2步将是对其进行反应。我被困在第一步。(我想我已经成功地完成了第0步——让它编译,尽管这需要很长时间。)
我已经用我自己的index.html
替换了create react app
index.html
,用我自己的主js文件替换了create react app
index.js
。过去,我的主文件是从index.html
加载的
标记,它的所有功能都进入了全局范围。显然,现在他们没有进入全球范围
在index.html
中,我有:
<button type="button" id="connectButton" class="btn btn-success" onclick="connect()">
Log on
</button>
function connect() {
...
}
过去,单击按钮会调用函数,因为它在全局范围内。现在,单击按钮会生成“ReferenceError:connect未定义”
,因为它显然没有进入全局范围
有人否决了我对这个问题的最初版本,可能是因为我问的不是“反应方式做事情”。我完全知道这一点,但让人们“反应方式”做事情的方法是向他们展示一种他们可以增量迁移代码基的方法。所以我无法想象我是唯一有这个问题的人。不过,我在谷歌上的尝试似乎没有带来任何帮助
附录:我发现我可以通过插入
window.connect=connect来解决这个问题函数定义后的代码>将其置于全局范围。我会补充这一点作为对这个问题的回答,但也许有人有更好的解释或解决办法,在这种情况下,我会接受他们的答案。谢谢。正如我在编辑的问题版本中所说,插入window.connect=connect代码>在函数定义将其放入全局范围后,这似乎是一个有效的解决办法。为什么您要通过HTML文件使用onclick处理程序而不是React?您能给我们看一下代码吗?@Li357:我打算迁移到React,但我希望一件一件地完成。@wgcrouch:HTML是登录
。该按钮可以正确渲染。函数的主体很长,不太有趣;它在定义执行之前和之后编译时都没有错误和日志语句。如果有帮助的话,我可以显示完整的代码,但它似乎不是,因为函数没有被执行。它说的connect
没有定义,你定义了吗?如果这只是在html中,那么connect
是在全局范围内,还是在生成该html的范围内?如果没有代码的其余部分,就很难提供帮助