画面を閉じた後に画面からデータを取得し、それを BLoC のストリーム コントローラーに追加しようとしています。ただし、_bloc.streamController.value を使用して値を取得しようとすると、null になります。ストリーム コントローラーは BehaviorSubject です。
void _getDataFromSomeScreen(context) async {
final data = await Navigator.push(
context, MaterialPageRoute(builder: (context) => SomeScreen()))
.then((onValue) {});
_bloc.streamController.sink.add(data);
}
私が試した他のオプションには、then ステートメント内で sink.add を呼び出し、ブロックを関数に渡すことが含まれます。
「async」と「await」を削除し、値をハードコードするだけで機能するようです。非同期が原因でデータがストリーム コントローラーに保存されないのはなぜですか?
void _getDataFromSomeScreen(context) {
_bloc.streamController.sink.add('some data');
}
画面からデータを返し、それをストリーム コントローラに追加するにはどうすればよいですか?