1

我从这里有一个基于 Erik Rasmussen 的初学者工具包的 React 应用程序。

该应用程序运行良好,使用 React Router 和 Redux。

由于我的 Rails 应用程序已经很老了,嵌入应用程序的想法是有一个单独的控制器,其中index动作呈现一个 iFrame,它本身从相同的控制器show动作加载它的内容。

因此,我可以坚持使用 Rails 应用程序的布局,并在不进行任何更改的情况下呈现 React 应用程序标记。

在我通过

$> npm run build

我将 main -.js 和 main -.css 文件复制到 Rails 应用程序中,以便可以从那里交付它们。

之后我通过以下方式启动 React 应用程序:

$> npm run start

并通过 curl 请求起始页面。curl 输出进入我的showerb 模板。在里面我更改了加载主要 JS 和 CSS 的 URL。

当我现在请求我的index页面时,iFrame 会加载它的内容,应用程序似乎正在初始化,但根本不起作用。我看到呈现的内容,但单击链接会导致 Rails 路由错误。所以点击似乎没有被 React 拦截。

我试图跟踪执行情况,并最终在client.js. 看起来,ReactDOM.render接收到正确的参数,意思是,有一个外观正确的组件要渲染,一个商店,甚至是目标元素。

目前我在控制台中收到以下错误:

Uncaught ReferenceError: _classCallCheck is not defined

我正在使用 starterkit 的一个稍微古怪的版本,它将初始数据嵌入到标记中,但我无法弄清楚为什么 _classCallCheck 在 React 应用程序中工作,但在嵌入到 Rails 时停止工作。

即使是最新版本的 starterkit 也不起作用。在那种情况下,我根本没有收到任何错误,但有相同的行为。

由于旧的 Rails 版本我不能使用 React Gem,而且我需要一些 starterkit 提供的开箱即用的功能,所以改变这个也是没有选择的。

有什么提示吗?

4

0 回答 0