質問: 初めまして。 お世話になります。 React Nativeのことで質問です。 React-Native-cliを利用してプロジェクトを作成したのですが、package.json内のreactのバージョンが^16.3.0-alpha.1となってしまっている影響か、次のようなWarningが出るようになりました。 > > Warning: componentWillReceiveProps is deprecated and will be removed > > in the next major version. Use static getDerivedStateFromProps > > instead. > > Warning: componentWillMount is deprecated and will be removed in the next major version. Use componentDidMount instead. As a temporary > > workaround, you can rename to UNSAFE_componentWillMount. > > > Warningの内容は、ライフサイクルで使用される関数が変わるので変更するように、とのことですが、npmを利用すればいいのかどうしていいのか全くわかりません。 これらのWarningを解決する方法をGoogle等で検索してみたのですが、自分では見つけることができませんでした。 もし解決方法をご存知であれば、ご教授くださると大変助かります。 どうぞよろしくお願いします。
回答: まだ新しいので情報が少ないですね。自分も探り探り使っています。 [What’s new in React 16.3(.0-alpha)](https://medium.com/@baphemot/whats-new-in-react-16-3-d2c9b7b6193b "What’s new in React 16.3(.0-alpha)") によると、 * `componentWillMount` は `componentDidMount` に変更 * `componentWillUpdate` は `componentDidUpdate` に変更 * `componentWillReceiveProps` は新たに追加された `static getDerivedStateFromProps` を使う のが良いようです。特にnpmの追加は要りません。 プロジェクトを新規作成されたとのことなので、上記の通り対応していけば良いでしょう。 既存のプロジェクトの場合、これに対応しようとすると、影響範囲が大きすぎるので、しばらくは対応せず様子見でも良いかもしれません。 16.3の正式リリース時に経緯の詳細や対策が発表されるのではないかと思います。 Warningにもある通り、メジャーバージョンが16のあいだは`componentWillMount`等がそのまま使えます。大量のWarningが気になるようであれば、頭に`UNSAFE_`を付けて、`UNSAFE_componentWillMount`等を使うことで、Warningを出なくすることもできるようです。