Как обрабатывать «Плохое состояние: невозможно добавить новые события после вызова close», чтобы добавить событие после вызова dispose во флаттере - PullRequest
0 голосов
/ 29 мая 2020

У меня blo c на моей странице входа в систему, но после того, как я нажму кнопку выхода и снова зарегистрируюсь, используя неправильный пароль (чтобы увидеть и распечатать неудачный ответ) .. Я всегда получаю Bad state: Cannot add new events after calling close Я закрыл свою функцию внутри утилиты но я все равно получаю 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();

есть ли что-то, что я должен добавить в свой код, чтобы предотвратить эту ошибку?

...