为了回答我的问题,我遵循这指南。
当试图使用Rails构建CRUD接口并作出反应时,当我尝试创建一个新项时,我会收到这错误:
addComponentAsRefTo(.):只有ReactOwner才能有参考文献。您可能要向组件的render方法中没有创建的组件添加一个ref,或者您有多个React加载副本。
我没有不恰当地将ref属性添加到不在render方法中的任何JSX中,因此我必须在资产管道中拥有多个React副本。
研究取得了以下潜在成果:
./app/assets/javascripts/application.js中删除//= require react行。事实证明这是不成功的。./app/assets/javascripts/server_rendering.js文件的./app/assets/javascripts/server_rendering.js行。这导致新的错误,概述如下:未定义的ReferenceError:$未定义
这意味着react_server不仅包含第二个React副本,而且还加载对AJAX调用至关重要的内容。
供参考,以下是./app/assets/javascripts/application.js的内容
// 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
//= require react_ujs
//= require react-server
//= require ./components
...其中,使用一组省略号或...来缩短已知的注释节。
发布于 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应该如下所示:
...
//= require rails-ujs
//= require jquery
//= require react
//= require components
//= require turbolinks
//= require_tree .您的./app/assets/javascripts/server_rendering.js文件应该如下所示:
//= require react_ujs
// require react-server
//= require ./components
...注意,require react-server被注释掉了。
并确保遵循在这中找到的解决方案,从而回答有关.\app\views\layouts\application.html.erb文件的问题。
https://stackoverflow.com/questions/44393803
复制相似问题