需要知道是否可以在不使用第三方库的情况下从Stream中获取最后一个值。
我尝试的第一种方法是,当我可以将值发送到'changeEmail'中的流时,可以将newValue存储在BLoC中的某个变量中。正确吗?
我尝试的第二种方法是添加一个侦听器,该侦听器也将执行与上述相同的工作,并且我需要将newValue存储在某个变量中。
我有SteamController:
final _emailController = StreamController<String>.broadcast();
有烦恼:
Stream<String> get email => _emailController.stream; // getting data from stream
get changeEmail => _emailController.sink.add; // sending data to stream
答案 0 :(得分:0)
您的片段大部分是正确的。但是,您需要在 _emailController.sink.add
final _emailController = StreamController<String>();
// Stream that will be called on the UI screen
Stream<String> get email => _emailController.stream;
fetchEmail() async {
String email = // email that will be provided to your Stream
_emailController.sink.add(email);
}
dispose() {
_emailController.close();
}
这是我之前创建的一个 sample,它在不使用 rxdart 的情况下实现了 BLoC。