Как вызвать метод из InheritedWidget только один раз? - PullRequest
0 голосов
/ 27 октября 2018

Я работаю с потоками / наблюдаемыми реактивными компонентами с помощью Rx_command, Rx_dart

Проблема:

  • Вмое приложение Flutter Я унаследовал виджет, который можно вызвать в любом месте с помощью:

    FooProvider.of (context) .foo.method1 ...

  • Мне нужно сделать первый вызов метода, когда пользовательский интерфейс загружается в первый раз

  • Я не могу использовать init.state, потому что это невозможно
  • Я использую didchangedependencies это работает, но ..

    ... каждый раз, когда пользовательский интерфейс перезагружается, вызывается didchangedependencies и метод выполняется снова.

Я не хочу, чтобы он выполнялся, и я не могу использовать init.state

Как можно выполнить метод только один раз ?

1 Ответ

0 голосов
/ 27 октября 2018

Вместо context.inheritFromWidgetOfExactType используйте context.ancestorInheritedElementForWidgetOfExactType

final myInherited = context.ancestorInheritedElementForWidgetOfExactType(MyInherited)?.widget;

Этот метод доступен внутри initState

...