目的
- 原因の特定に時間がかかったためシェアする
- このエラーメッセージで検索しても日本語では情報が出なかったため、今後同じ問題が発生した人の調査に役立てたい
事象
console.error: There was a problem sending log messages to your development environment Error: value.hasOwnProperty is not a function. (In 'value.hasOwnProperty('tag')','value.hasOwnProperty' is udefined)
環境
- react-native
- expo 3.21.13
原因と対処
- この問題は、Expoの内部のバグ
-
console.log()
の引数内にjsonを直接入れた時に発生する場合がある
- なので、サーバリクエストなどの結果をconsole.logに出そうとした時にエラーが発生する
- 例えば、以下の時に発生した
//ReactNativeの画面で入力した結果をstateに入れている。
// それをUploadを行う非同期処理メソッドに直接入れている
uploadTokoAsync(state)
// 投稿を実施する
uploadTokoAsync = (state) => {
// 入ってきた引数の中身をログにだす → ここでエラーが発生する
console.log(state)
//以下はstateの中身ををアップロードする処理
}
- チケット6496上の議論での対処としては、出したい値を以下のようにJSON.stringfyで展開してタグ付けして解決をしているらしい
console.log('Test', JSON.stringify(state));
https://github.com/expo/expo/issues/6496