1

我正在尝试将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,但它也不起作用!有什么建议么?

4

0 回答 0