首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用react rails Gem的多个未明错误

使用react rails Gem的多个未明错误
EN

Stack Overflow用户
提问于 2017-06-06 15:14:54
回答 1查看 112关注 0票数 0

为了回答我的问题,我遵循指南。

当试图使用Rails构建CRUD接口并作出反应时,当我尝试创建一个新项时,我会收到错误:

addComponentAsRefTo(.):只有ReactOwner才能有参考文献。您可能要向组件的render方法中没有创建的组件添加一个ref,或者您有多个React加载副本。

我没有不恰当地将ref属性添加到不在render方法中的任何JSX中,因此我必须在资产管道中拥有多个React副本。

研究取得了以下潜在成果:

  1. 介绍webpack塞奇 (在中是这么回答的),对于我简单的CRUD界面来说,似乎是一个笨重的解决方案。
  2. 未选中,因此答复建议从./app/assets/javascripts/application.js中删除//= require react行。事实证明这是不成功的。
  3. 问题#671,从官方的GitHub反应-rails回购。这里,完美地概述了我问题的第一部分。我遵循了这个潜在的解决方案,它建议删除./app/assets/javascripts/server_rendering.js文件的./app/assets/javascripts/server_rendering.js行。这导致新的错误,概述如下:

未定义的ReferenceError:$未定义

这意味着react_server不仅包含第二个React副本,而且还加载对AJAX调用至关重要的内容。

供参考,以下是./app/assets/javascripts/application.js的内容

代码语言:javascript
复制
// This is a manifest file that'll be compiled into application.js, which will include all the files
...
// about supported directives.
//
//= require rails-ujs
//= require react
//= require components
//= require turbolinks
//= require_tree .

./app/assets/javascripts/server_rendering.js

代码语言:javascript
复制
//= require react_ujs
//= require react-server
//= require ./components
...

其中,使用一组省略号或...来缩短已知的注释节。

  • 红宝石版本: 2.3.3p222 (2016-11-21修订版56859)
  • Rails版本: 5.1.1
  • rails版本: 2.2.0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-06 15:14:54

第三个潜在答案,即将//= require react-server./app/assets/javascripts/server_rendering.js中移除,是朝着正确方向迈出的一步。

移除这一行并不会产生新的问题,它只是揭示了另一个您一直以来都存在的错误。react_server不为AJAX调用定义$变量,而是jQuery gem。

找到了这里。我对这个解决方案很有信心,因为错误是:

未定义的ReferenceError:$未定义

这是一个jQuery问题,因为AJAX调用可能会采取官方文档中引用的表单。这里

因此,在shell中运行gem install jquery-rails之后,您的./app/assets/javascripts/application.js应该如下所示:

代码语言:javascript
复制
...
//= require rails-ujs
//= require jquery
//= require react
//= require components
//= require turbolinks
//= require_tree .

您的./app/assets/javascripts/server_rendering.js文件应该如下所示:

代码语言:javascript
复制
//= require react_ujs
// require react-server
//= require ./components
...

注意,require react-server被注释掉了。

并确保遵循在中找到的解决方案,从而回答有关.\app\views\layouts\application.html.erb文件的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44393803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档