0

画面を閉じた後に画面からデータを取得し、それを 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');
  }

画面からデータを返し、それをストリーム コントローラに追加するにはどうすればよいですか?

4

1 に答える 1