В консоли Google Play> Отчеты о сбоях я вижу, что есть несколько пользователей, у которых возникает этот сбой. Я понимаю, что где-то есть неопределенная переменная, и я пытаюсь получить доступ к ее свойству id. Я не могу воспроизвести этот сбой на тестовых устройствах.
Заглянув в index.android.bundle, я вижу 30 вхождений 'e.id', некоторые из которых происходят из моего кода, некоторые из других модулей, поддерживающих реакцию. Как я могу узнать, в чем проблема?
Какие инструменты я могу использовать для этого?
Приложение построено с использованием "react-native": "0.53.3"
com.facebook.react.common.JavascriptException: undefined is not an object (evaluating 'e.id'), stack:
value@870:1304
onPress@870:3393
touchableHandlePress@170:1510
_performSideEffectsForTransition@163:8488
_receiveSignal@163:7275
touchableHandleResponderRelease@163:4740
y@41:1204
invokeGuardedCallback@41:467
invokeGuardedCallbackAndCatchFirstError@41:582
H@41:2563
D@41:3325
F@41:3122
Ie@41:14792
<unknown>@41:15350
batchedUpdates@41:60665
_e@41:14565
ze@41:15336
receiveTouches@41:15879
value@18:3582
<unknown>@18:1067
value@18:3009
value@18:1039
at com.facebook.react.modules.core.ExceptionsManagerModule.showOrThrowError(ExceptionsManagerModule.java
at com.facebook.react.modules.core.ExceptionsManagerModule.reportFatalException (ExceptionsManagerModule.java:40)
at java.lang.reflect.Method.invoke (Native Method)
at com.facebook.react.bridge.JavaMethodWrapper.invoke (JavaMethodWrapper.java:374)
at com.facebook.react.bridge.JavaModuleWrapper.invoke (JavaModuleWrapper.java:162)
at com.facebook.react.bridge.queue.NativeRunnable.run (Native Method)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage (MessageQueueThreadHandler.java:31)
at android.os.Looper.loop (Looper.java:148)
at com.facebook.react.bridge.queue.MessageQueueThreadImpl$3.run (MessageQueueThreadImpl.java:194)
at java.lang.Thread.run (Thread.java:818)
Цифры рядом с ошибкой представляют строку и столбец исходной карты. Имея в руках эти числа и исходную карту, вы можете определить, какая строка кода именно вызывает сбой. Вы можете прочитать больше об исходных картах здесь: stackoverflow.com/questions/34715106/…