componentWillReceivePropsというライフサイクルメソッドは最新のstateを受け取って更新することができ、前のページで受け取った値を
上書きしてstateに設定することができるメソッドです。
自分はselectタグで何も入力せずに次のページに進む、つまりデフォルトの値を最新の状態で受け取りたかったので
使っていたのですがずいぶん前に廃止するって決められていたみたいです。
Reactはv16まではこれまでのバージョンとほぼ同じ動きをするように決められていたのですが
v17になってからはRender Phaseという実装がrenderする度に何度も呼ばれ、これがループのようにぐるぐる回ってしまうため
危険視されているみたいですね・・・。
render部分がループすれば当然コンポーネントでバグがわんさかでて保守性が著しく落ちてしまうので使うのを避けてくださいなので
代わりにcomponentDidUpdateかUNSAFE_componentWillReceivePropsに置き換えてねという記事を見かけたので
後者のUNSAFE_componentWillReceivePropを使うことにしました。
どちらもprop・state共にrenderに影響を及ぼすことなくsetStateできるので値を遷移する前に更新したい
もしくは他の関数の影響を受けないように最後にstateの更新をしたいというかたは今使っているcomponentWillReceiveProps
を避けて上のどちらかに切り替えれば安牌なのかなぁと感じました。
※componentDidUpdateでthis.stateすると、無限にstateし続けることを知ったのでUNSAFE_componentWillReceivePropを
使ってください!!