Как найти тег из ошибки: Попытка обновить несуществующее представление с тегом 85273 в React Native Android - PullRequest
0 голосов
/ 03 августа 2020

При производстве приложения 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. Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...