react関係の記事を斜め読みしている時に、ふと、自分のcomponentには「railsContext」が渡ってきていないことに気がつきました。
そういえば、HelloWorldアプリのコードを追ってるときに、_railsContextを握りつぶしている箇所があって、
「あれ〜おかしいなあ〜なんか変だな〜」
って思ったことを思い出しました。
該当箇所
client/app/bundles/HelloWorld/startup/HelloWorldApp.jsx
うん。「_railsContext」が完全にスルーされてるw
railsContextとは?
というような内容の、objectです。
react_componentは、このrailsContextをpropsと併せてComponentに渡してくれているんですが、こいつがHelloWorldAppでは完全に握りつぶされてしまっております。
HelloWorldAppを参考に組んでいる現アプリも、当然ながら握りつぶしている状況です。
今々の段階ではこの情報がないからと言ってすぐに困るわけではありませんが、
不安の芽は早めに摘んでおくことにします。
RailsContextが渡ってくるように調整する
そもそも握りつぶしているのがよくない!propsでひとまとめにすればええんやろ?
という超安易な発想で修正。
client/app/Routes.jsx
client/app/reducers/railsContextReducer.jsx
client/app/containers/IndexPage.jsx
storeにrailsContextを混ぜたinitialStateを登録したので、stateから引っ張ってくることができます。
これで、railsContextへの参照も問題なさそうですね!
本来は、IndexPageを内包するコンポーネントを作ることになると思われるので、
親側から、子のpropsに差し込むようなコーディングをしてあげればなおよいでしょう。
よし!ご飯食べに行ってくる!