json 生成的 rails 无法被反应识别
json generated by rails can't be recognized by react
我有一个像这样的反应组件
var Task = React.createClass({
render: function () {
return (
<div className="task" id={ this.props.task.uid }>
<div className="header">
<span>task #{ this.props.task.uid }</span>
</div>
</div>
)
}
});
创建任务后,我将此任务添加到 create.js.erb
内的任务列表中
<% if @task.errors.any? %>
$("#error-alert").removeClass('hidden')
<% else %>
$('#task-modal').modal('hide')
$('#tasks-list').prepend(React.renderToString(Task({ task: '<%= @task.to_react %>' })))
<% end %>
原来在任务组件前置的时候,他前置的是空的(只是一个框,没有任何文字)。
我尝试了 <%= @task.to_react.to_json.html_safe %>
但也没有成功
我的Task#to_react
方法:
def to_react
{
role: role,
need: need,
result: result,
uid: uid
}
结束
对 rails 不是很熟悉,但除非它在这里做一些魔术,否则您将对象嵌入到字符串中。
尝试
任务:<%= ... %>
而不是:
任务:'<%= ... %>'
我有一个像这样的反应组件
var Task = React.createClass({
render: function () {
return (
<div className="task" id={ this.props.task.uid }>
<div className="header">
<span>task #{ this.props.task.uid }</span>
</div>
</div>
)
}
});
创建任务后,我将此任务添加到 create.js.erb
<% if @task.errors.any? %>
$("#error-alert").removeClass('hidden')
<% else %>
$('#task-modal').modal('hide')
$('#tasks-list').prepend(React.renderToString(Task({ task: '<%= @task.to_react %>' })))
<% end %>
原来在任务组件前置的时候,他前置的是空的(只是一个框,没有任何文字)。
我尝试了 <%= @task.to_react.to_json.html_safe %>
但也没有成功
我的Task#to_react
方法:
def to_react
{
role: role,
need: need,
result: result,
uid: uid
}
结束
对 rails 不是很熟悉,但除非它在这里做一些魔术,否则您将对象嵌入到字符串中。
尝试
任务:<%= ... %>
而不是:
任务:'<%= ... %>'