Я пытаюсь вернуть данные с экрана после его закрытия, а затем добавить их в контроллер потока в моем BLoC. Однако, когда я пытаюсь получить значение с помощью _bloc.streamController.value, оно равно нулю. Контроллер потока - это BehaviorSubject.
void _getDataFromSomeScreen(context) async {
final data = await Navigator.push(
context, MaterialPageRoute(builder: (context) => SomeScreen()))
.then((onValue) {});
_bloc.streamController.sink.add(data);
}
Другие варианты, которые я пробовал, включают в себя вызовink.add внутри оператора then, передавая мой блок функции.
Если я удалю async и await и просто жестко запрограммирую значение, похоже, это сработает. Почему из-за асинхронности мои данные не сохраняются в моем контроллере потока?
void _getDataFromSomeScreen(context) {
_bloc.streamController.sink.add('some data');
}
Как я могу вернуть данные с экрана и добавить их в свой контроллер потока?
.then()
- дождитесь результатаNavigator.push()
- person Richard Heap   schedule 25.01.2019