1

React.js でGonを使用しようとしています。最初は、Gon を使用して静的データを渡すだけでしたが、うまくいきました。ただし、jsx ファイルで Ajax(jquery) を使用すると、エラーがスローされます。

Uncaught ReferenceError: gon is not defined  

私のコントローラーでは、次の 2 つの関数を確認できます。

shareフォームのアクションなので、静的データを新しいページに正しく渡すことができます。

searchAjax によって呼び出された場合、動的データを現在のページに戻すことはできません。

  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で、2 つのバージョンを試しましたが、どちらも機能しません。

<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