kaminari gem で react-rails を使用しようとしています。以下のコードは、ページネーションを使用して管理者ページを作成する役割を果たします。ページネーションはカミナリ メソッドです。
#app/views/dashboard/admins/_admins.html.erb
<div id="admins_component">
<%= react_component 'Admins', {data: admins} %>
</div>
<%= paginate admins, :remote => true %>
remote=true でリクエストを発行すると、この全体が再描画され、次のコードによってレスポンスが生成されます。
#app/views/dashboard/admins/index.js.erb
<% if @admins.present? %>
$("#admin_wrapper").html("<%= escape_javascript(render partial: 'admins', locals: { admins: @admins } ) %>");
React.render("Admins", "#admins_component"); //How to make this work???
<% end %>
ajax リクエストの後、レスポンスが正しく生成され、次のように ReactComponent もページの HTML に作成されます。
<div data-react-class="Admins" data-react-props="{"data":[{"id":26,"email":"okokoko@kok.com","created_at":"2016-03-16T09:10:48.220Z","updated_at":"2016-03-16T09:10:48.220Z"}]}"></div>
しかし問題は、コンポーネントがレンダリング/マウントされていないことです。コンソールからコンポーネントを手動でマウントしようとしましたが、正しく行ったかどうかはわかりません。
さらに、クロムの反応拡張機能は、次のページのリクエストが発生した後、管理コンポーネントの以前の状態を表示します。
目的は、ページネーション リンクをクリックして、以下の赤いボックスの html を置き換えることです。
ページネーション リンクをクリックする前後にコンソールで Admin.prototype を実行すると、次の出力が得られます。