我有一个像这样的反应组件
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
}
端
答案 0 :(得分:1)
不熟悉rails,但除非它在这里做了一些魔术,否则你将对象嵌入到字符串中。
尝试
任务:&lt;%= ...%&gt;
而不是:
任务:&#39;&lt;%= ...%&gt;&#39;