Flutter: как условно запустить метод внутри ChangeNotifier после вызова конструктора - PullRequest
0 голосов
/ 28 марта 2020
class MyChangeNotifier extends ChangeNotifier {
  bool myVar;
  ...
  MyChangeNotifier({@required this.myVar, ...});

  void myFunction (){...}
  ...

Я хотел бы иметь функцию, подобную initState, для вызова, как только Конструктор завершит работу.

if (myVar) {
  myFunction();
}

Как я могу получить это поведение? Кажется, что ChangeNotifier не имеет initState, потому что я получаю "Метод 'initState' не определен в суперклассе 'MyChangeNotifier'", когда я пишу следующее:

void initState() {
  super.initState();
}

Я думал о вызове функция извне, сразу после создания MyChangeNotifier, но я не уверен, где это сделать:

return ChangeNotifierProvider<MyChangeNotifier>(
  create: (context) => MyChangeNotifier(
    myVar: true,
    ...
  ),
  child: ... )

1 Ответ

1 голос
/ 28 марта 2020

вы вызываете myFunction из конструктора

MyChangeNotifier({@required this.myVar, ...}){
  if (myVar) {
    myFunction();
  }
};

обратите внимание, что ChangeNotifier не является StatefulWidget для initState

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