Ruby on rails 如何将React starterkit应用程序嵌入传统Rails应用程序?
我有一个基于Erik Rasmussen的初学者工具包的React应用程序 该应用程序使用React路由器和Redux运行良好 由于我的Rails应用程序很旧,嵌入该应用程序的想法是使用一个单独的控制器,其中Ruby on rails 如何将React starterkit应用程序嵌入传统Rails应用程序?,ruby-on-rails,reactjs,react-starter-kit,Ruby On Rails,Reactjs,React Starter Kit,我有一个基于Erik Rasmussen的初学者工具包的React应用程序 该应用程序使用React路由器和Redux运行良好 由于我的Rails应用程序很旧,嵌入该应用程序的想法是使用一个单独的控制器,其中索引操作呈现一个iFrame,它本身从相同的控制器显示操作加载其内容 因此,我可以坚持使用Rails应用程序的布局,在不做任何更改的情况下呈现React应用程序标记 在我通过 $>npm运行生成 我将main-.js和main-.css文件复制到Rails应用程序中,这样就可以从那里交付
索引
操作呈现一个iFrame,它本身从相同的控制器显示
操作加载其内容
因此,我可以坚持使用Rails应用程序的布局,在不做任何更改的情况下呈现React应用程序标记
在我通过
$>npm运行生成
我将main-.js和main-.css文件复制到Rails应用程序中,这样就可以从那里交付它们
之后,我通过以下方式启动React应用程序:
$>npm运行开始
并通过curl请求起始页。curl输出进入myshow
erb模板。在内部,我更改了加载主JS和CSS的URL
当我现在请求我的索引
页面时,iFrame会加载它的内容,应用程序似乎会初始化,但根本不工作。我看到呈现的内容,但单击链接会导致Rails路由错误。因此,React似乎不会拦截这些点击
我试图跟踪执行情况,最后在client.js
中调试了代码。看起来,ReactDOM.render
接收正确的参数,这意味着要呈现的组件、存储区,甚至是目标元素都是正确的
目前,我在控制台中遇到以下错误:
未捕获引用错误:\未定义classCallCheck
我使用的是略为有序的starterkit版本,它将初始数据嵌入到标记中,但我无法理解为什么_classCallCheck在React应用程序中工作,但在嵌入Rails时停止工作
即使是最新版本的初学者工具包也不起作用。在这种情况下,我没有得到任何错误,但有相同的行为
由于旧的Rails版本,我无法使用React Gem,并且我需要starterkit提供的一些现成功能,因此更改此版本也不是选项
有什么提示吗?你确定这是一条明智的道路吗?如果您有一个旧版的Rails,它位于非常旧的Rails版本上,那么在添加功能之前,出于安全原因,您应该优先升级应用程序。此外,如果目标是构建一个单页应用程序,那么您可能不需要Rails服务器的开销来为应用程序提供服务。相反,您只需要一个构建工具链和一个可以服务于静态文件的服务器。然后,您可以在Rails中创建API,SPA将其用作输入的后端.Thx@max。不幸的是,这是没有帮助的,因为我知道缺点,也知道有什么选择。升级旧版Rails应用程序不是一个选项。SPA需要集成,因为使用当前资源无法实现其他功能。谢谢你的输入。你确定这是一条明智的道路吗?如果您有一个旧版的Rails,它位于非常旧的Rails版本上,那么在添加功能之前,出于安全原因,您应该优先升级应用程序。此外,如果目标是构建一个单页应用程序,那么您可能不需要Rails服务器的开销来为应用程序提供服务。相反,您只需要一个构建工具链和一个可以服务于静态文件的服务器。然后,您可以在Rails中创建API,SPA将其用作输入的后端.Thx@max。不幸的是,这是没有帮助的,因为我知道缺点,也知道有什么选择。升级旧版Rails应用程序不是一个选项。SPA需要集成,因为使用当前资源无法实现其他功能。谢谢你的输入。