Использование 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;