React.js でGonを使用しようとしています。最初は、Gon を使用して静的データを渡すだけでしたが、うまくいきました。ただし、jsx ファイルで Ajax(jquery) を使用すると、エラーがスローされます。
Uncaught ReferenceError: gon is not defined
私のコントローラーでは、次の 2 つの関数を確認できます。
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で、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
ましたが、うまくいきません!助言がありますか?