Пробую Блока в трепете. Кажется, он отлично работает при вызове функции блока в виджете с отслеживанием состояния, например:
RaisedButton(
onPressed: () => _nextStep(),
child: Text("Next"))
Это вызовет функцию _nextStep () и обновит пользовательский интерфейс. Функция nextStep:
_nextStep() async {
_bloc.StepEventSink.add(NextStep());
}
и я использую StreamBuider для виджета, и он работает. Но если я вызываю _nextStep () вне класса, данные обновляются, а пользовательский интерфейс - нет. Пример:
class FormWizard extends StatefulWidget {
@override
_FormWizardState createState() => _FormWizardState();
next() {
_FormWizardState()._nextStep();
}
}
Как я могу обновить пользовательский интерфейс вне виджета?