Использование ancestorInheritedElementForWidgetOfExactType во флаттере

У меня есть объект чата в InheritedWidget выше в корневой виджет моего приложения. Я хочу получить доступ к этому объекту в initState установить начальное состояние дочернего виджета. У меня есть следующий код:

void initState() {
  super.initState();
  final inheritedWidget = context.ancestorInheritedElementForWidgetOfExactType(MyInheritedWidget).widget;

  inheritedWidget.chat.someFunction();
}

Я получаю сообщение об ошибке: "The getter 'chat' isn't defined for the class 'InheritedWidget'

Я использую метод неправильно, как вы используете его?

1 ответ

Решение

Вы должны бросить widget первый:

final inheritedWidget = context.ancestorInheritedElementForWidgetOfExactType(MyInheritedWidget).widget as MyInheritedWidget;
Другие вопросы по тегам