先日、ReactNativeとredux-formを使ったアプリでWarningが出ました。 ちょっと難解な内容だったので対処法をメモとして残します。
react-native
を使用redux-form
を使用react : 16.13.0
react-native : 0.63.1
redux-form : 8.3.5
Warning: Cannot update a component from inside the function body of a different component.
調べたところ、同様のWarningが発生している例をいくつか見かけました。
原因はメッセージにある通りで、対象のコンポーネントを描画中に他コンポーネントのsetState
を呼んでいることが原因のようです。
しかし、どうも発生箇所はredux-form
中の様子。
※正確には、redux-form
のvalidate
で各Field
に対してerror
を発生させた場合に起きている。
redux-formのIssueを見ると、react
のバージョンを16.13.1
に上げればいいようなので上げてみることに。
yarn upgrade react --latest
しかしこれでも発生する。
ダメ元でredux-form
のバージョンも最新にしてみる。
yarn upgrade redux-form --latest
これで直った。
今回はWarning: Cannot update a component from inside the function body of a different component.
の対処方法を記載しました。
ライブラリ依存のWarning
やError
はちょくちょく見かけるので、初歩ではありますが何かあったらIssue
をチェックするといいかと思います。