反応ネイティブでライフサイクルメソッドを使用しているときに、コンソールとエミュレータで次の警告メッセージが表示されました。
警告:componentWillReceivePropsは非推奨であり、次のメジャーバージョンで削除される予定です。代わりに静的getDerivedStateFromPropsを使用してください。
警告:componentWillMountは非推奨であり、次のメジャーバージョンで削除される予定です。代わりにcomponentDidMountを使用してください。一時的な回避策として、UNSAFE_componentWillMountに名前を変更できます。
エミュレータで警告メッセージを閉じると問題が発生し、アプリケーションがクラッシュするため、アプリケーションを再起動する必要があります。これについて私は何ができますか?
また、警告メッセージにもかかわらず、「componentWillReceiveProps」メソッドを使用したことはありません。ただし、「componentWillMount」メソッドを使用しました。メソッド "componentWillReceiveProps"に関連しても警告メッセージが表示される原因は何ですか?
私はそれがあなたのアプリケーションに影響を与えないと思います、それは単に迷惑です。
以下をindex.js
に追加して非表示にします。
import { YellowBox } from 'react-native';
YellowBox.ignoreWarnings([
'Warning: componentWillMount is deprecated',
'Warning: componentWillReceiveProps is deprecated',
'Module RCTImageLoader requires',
]);
これらの廃止の通知は、React Native 0.54の土地に起因するものではありませんでしたが、誤ってReact Nativeを0.54.1にアップグレードすると、これらのメッセージがなくなった。
続きを読む こちら 。
交換するだけ
componentWillReceiveProps(nextProps) { ... }
と
static getDerivedStateFromProps(nextProps, prevState) { ... }
現在の状態としてprevState
を使用します。
このメソッドは状態を更新する場合はオブジェクトを返し、何も更新しない場合はnullを返し、コンポーネントインスタンスにアクセスできないことを忘れないでください。 reduxのようなもの。参照してください this