Флаттер, как получить родительский виджет неизвестного типа - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь улучшить сообщения об ошибках от виджета, который пишу.

, если происходит ошибка, я хочу иметь возможность выгрузить дерево виджетов, чтобы показать пользователю предки моего виджета.

Для этого мне нужно отобразить дерево виджетов из моего виджета обратно вверх по дереву в направлении root.

Единственный способ получить родительский виджет - это через вызов:

findAncestorWidgetOfExactType

Конечно, проблема в том, что я не знаю тип родительского элемента, поэтому этот метод не будет работать.

Существуют ли какие-либо методы, которые позволит мне отобразить дерево из моего виджета обратно к root дерева?

В дереве элементов есть метод, который позволяет это, но я не знаю, как получить доступ к сгенерированному элементу:

List<Element> debugGetDiagnosticChain() {
    final List<Element> chain = <Element>[this];
    Element node = _parent;
    while (node != null) {
      chain.add(node);
      node = node._parent;
    }
    return chain;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...