我试图将Gon与React.js一起使用。起初,我只使用Gon传递静态数据,并且它有效!但是在jsx文件中使用Ajax(jquery)的情况下,它会抛出一个错误:
Uncaught ReferenceError: gon is not defined
在我的控制器中,您可以看到两个功能:
share
是表单的操作,因此它可以正确地将静态数据传递到新页面。
search
,它无法将动态数据传递回当前页面。
def share
@curiosity = Curiosity.friendly.find params[:curiosity_id]
gon.curiosity = @curiosity
end
def search
@curiosities = Curiosity.where("title like ?", "%#{params[:keyword]}%")
gon.curiosities = @curiosities
render json: gon.curiosities
end
在我的 application.html.erb 中,我尝试了两个版本,但都无法工作:
<head>
...
<%= include_gon(init: true, watch: true) %>
<%= Gon::Base.render_data({}) %>
和
<%= include_gon %>
最后,在我的 .js.jsx 文件中:
$.post(
this.props.url,
{ keyword: $("#searchKeyword").val() },
function(data) {
console.log(gon.curiosities);
console.log(data);
}
);
显然,我已经尝试了gon.watch
,但它也没有用!有什么建议吗?