Rails 4 + ReactJS:“语法错误:隐式对象中不能有隐式值”
Posted
技术标签:
【中文标题】Rails 4 + ReactJS:“语法错误:隐式对象中不能有隐式值”【英文标题】:Rails 4 + ReactJS: "SyntaxError: cannot have an implicit value in an implicit object" 【发布时间】:2015-11-25 21:08:28 【问题描述】:我正在关注 Fernando Villalobos 的 React.js - A guide for Rails developers AirPair 教程。
这里的目标是使用 Rails 和 React JS 构建一个简单的费用跟踪应用程序。
在Nesting Components: Listing Records部分,作者建议创建app/views/records/index.html.erb
文件如下:
<%# app/views/records/index.html.erb %>
<%= react_component 'Records', data: @records %>
和一个javascripts/components/records.js.coffee
文件如下:
# app/assets/javascripts/components/records.js.coffee
@Records = React.createClass
render: ->
React.DOM.div
className: 'records'
React.DOM.h2
className: 'title'
'Records'
然后,当我们访问localhost:3000/records
时,我们应该会看到以下内容:
但是,当我访问localhost:3000/records
时,我收到以下错误:
ExecJS::RuntimeError in Records#index
SyntaxError: [stdin]:7:10: cannot have an implicit value in an implicit object
<title>Expenses</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
特别是,导致问题的行似乎是:
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
知道问题是什么以及如何使事情发挥作用吗?
【问题讨论】:
【参考方案1】:我的错。
我在 CoffeeScript 文件中使用了 Ruby“双空格”缩进,导致错误。
当我复制并粘贴教程中的代码并使用正确的缩进时,一切都像魅力一样工作。
【讨论】:
谢谢——同样的错误。重新开始关于留白意义重大的辩论!【参考方案2】:尝试以下 coffescript 而不是您当前的 coffescript(只需从 coffescript 中删除 React.DOM
):
@Records = React.createClass
render: ->
div
className: 'records'
h2
className: 'title'
'Records'
【讨论】:
问题来自缩进。我刚刚发布了一个答案来解释这一点。但是,像往常一样,非常感谢您的帮助和响应,非常感谢。 没问题,是的,那是来自 coffescript 编译问题。我在 react 版本 .12 中发现了一些没有使用React.DOM
的建议,所以我认为这就是问题所在。因为,我在这里尝试了你的咖啡脚本代码:coffeelint.org,它没有抱怨。无论如何,我很高兴它现在为你工作:)以上是关于Rails 4 + ReactJS:“语法错误:隐式对象中不能有隐式值”的主要内容,如果未能解决你的问题,请参考以下文章
ReactJS:从 rails 传递参数以将路由器反应到组件