at backyard

Color my life with the chaos of trouble.

Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React. という警告を直した際のメモ

react-railsでアプリを書いていると、下記のような"warning"に出会った。

Warning: unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.

調べてみると下記のissueにたどり着いた。

github.com

内容を見てみると、以前に修正されてはいるんだけど、バージョン上げたらまた出てきたよ!という内容のようだ。
なお、この時点での最新バージョンは下記のとおりとなる。
・react-rails (v2.2.0)
・webpacker gem (v2.0)

---------追記---------

そうそう、自身の環境を書き忘れていたので、下記に追記
Rails 5.0.2
・react-rails (1.11.0)

なお、webpackerは使用していない。

------追記終わり------

そして、以前あがっていたissueとは下記のものになるよう。

github.com

issue内にも書かれているとおり、下記のコードを"application.js"に追記したら、warningが出なくなった。

ReactRailsUJS.handleEvent('turbolinks:before-cache', function() {
  window.ReactRailsUJS.unmountComponents();
});


ちなみにreact-railsは今年リリースした"Sauna Map of Japan"にて使用中。
フロント側は元々jQueryで書いていたのだが、今回react-railsを使って、絶賛書き直し中。
自身の勉強を兼ねてもいる。今更な話ではあるが、react良いですね〜

react-rails

github.com


ちなみにSauna Map of Japanはまだベータ版。少しずつではあるが、使いやすいものにしていきます。

Sauna Map of Japan

https://sauna-map-of-japan.herokuapp.com/


そういえば、久しぶりのブログ更新になりました。
あと、少し前にMediumにも近況載せました。
最近フロントエンド側でコード書いていますよ、という話。

medium.com