我正在尝试将Gon与 React.js 一起使用。一开始,我只用 Gon 来传递静态数据,而且成功了!但是在 jsx 文件中使用 Ajax(jquery) 的情况下,它会抛出一个错误:
Uncaught ReferenceError: gon is not defined
在我的控制器中,您可以看到两个功能:
share
是表单的动作,所以它可以正确地将静态数据传递给新页面。
search
由 Ajax 调用,它不能将动态数据传回当前页面。
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
,但它也不起作用!有什么建议么?