При производстве приложения React Native получить ошибку Android из-за сбоев firebase:
Fatal exception: com.facebook.react.uimanager.IllegalViewOperationException.
Trying to update non-existent view with tag 85273.
И нет сценария cra sh, поэтому его невозможно обнаружить . Я много раз проверял на эмуляторах и реальном устройстве Android.
Что мы узнали об этой хрени sh?
- метод updateView вызвавший исключение, находится в node_modules / response-native / ReactAndroid / src / main / java / com / facebook / react / uimanager / UIImplementation.java;
public void updateView(int tag, String className, ReadableMap props) {
ViewManager viewManager = mViewManagers.get(className);
if (viewManager == null) {
throw new IllegalViewOperationException("Got unknown view type: " + className);
}
ReactShadowNode cssNode = mShadowNodeRegistry.getNode(tag);
if (cssNode == null) {
throw new IllegalViewOperationException("Trying to update non-existent view with tag " + tag);
}
if (props != null) {
ReactStylesDiffMap styles = new ReactStylesDiffMap(props);
cssNode.updateProperties(styles);
handleUpdateView(cssNode, className, styles);
}
}
- по условию, если cssNode == null, то выдает исключение, это означает, что какой-то null пришел со стороны JS;
- ShadowNodeRegistry - это простой класс контейнера для отслеживания ReactShadowNodes, связанных с конкретным экземпляром UIManagerModule;
- и у нас есть номер тега 85273, причина исключения.
Как я могу найти элемент в JS рядом с номером тега 85273? Или, может быть, кто-нибудь может порекомендовать мне несколько статей или поделиться своим опытом, как решить подобные сбои в Android приложения React Native. Заранее спасибо.