我的登录页面中有bloc,但是单击注销按钮并使用错误的密码再次登录(以查看和打印失败的响应)之后。我总是得到Bad state: Cannot add new events after calling close
,我在dispose中关闭了函数,但是我仍然得到Bad state: Cannot add new events after calling close
这是我的代码的一部分
class Login {
final _repository = Repository();
final _loginController = StreamController<List<dynamic>>();
Stream<List<dynamic>> get loginData => _loginController.stream;
final _name = BehaviorSubject<String>();
final _password = BehaviorSubject<String>();
//Login initialData
retrieveLoginData(String name, String password) async {
List<LoginRespon> post = await _repository.addSave(name, password);
_loginController.sink.add(post); // the error (paused on exception) comes from here
}
addSave() {
_repository.addSave(_name.value, _password.value);
}
dispose() {
_name.close();
_password.close();
_loginController.close();
}
}
final bloc = Login();
我应该在代码中添加一些东西来防止该错误吗?