У меня странная ошибка, которую я получаю, и я не могу исправить это. Я реализую шаблон blo c на своей странице входа. Я не могу указать, что я делаю неправильно. Вот мой код
login_blo c .dart
import 'package:rxdart/rxdart.dart';
import 'dart:async';
class LoginBloc extends Object with Validators {
final _emailController = BehaviorSubject<dynamic>();
final _passwordController = BehaviorSubject<dynamic>();
Function(String) get emailChanged => _emailController.sink.add;
Function(String) get passwordChanged => _passwordController.sink.add;
Stream<String> get emailValidator => _emailController.stream.transform(emailValidators);
Stream<String> get passwordValidator => _passwordController.stream.transform(passwordValidators);
Stream<bool> get submitCheck => Rx.combineLatest2(emailValidator, passwordValidator, (e, p) => true);
dispose() {
_emailController?.close();
_passwordController?.close();
}
}
mixin Validators {
var emailValidators =
StreamTransformer<String, String>.fromHandlers(handleData: (email, sink) {
if (email.contains("@")) {
sink.add(email);
} else {
sink.addError("Email is not valid");
}
});
var passwordValidators = StreamTransformer<String, String>.fromHandlers(
handleData: (password, sink) {
if (password.length > 0) {
sink.add(password);
} else {
sink.addError("Password Field should not be empty");
}
});
}
final loginBloc = LoginBloc();
вот виджет, который я создал, вызывая blo c
Widget _emailPasswordWidget() {
return Column(
children: <Widget>[
Container(
margin: EdgeInsets.symmetric(vertical: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
'Email ID',
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 15),
),
SizedBox(
height: 10,
),
StreamBuilder<String>(
stream: loginBloc.emailValidator,
builder: (context, snapshot) {
return TextField(
onChanged: loginBloc.emailChanged,
obscureText: false,
decoration: InputDecoration(
errorText: snapshot.error,
border: InputBorder.none,
fillColor: Color(0xfff3f3f4),
filled: true));
}
)
],
),
)
loginBloc.passwordChanged),
],
);
}
Буду признателен любому помочь вообще. Я проверил онлайн, и я не видел никакой помощи. Я использую версию rxdart ^ 0.23.1. Я использовал streamcontroller вместо темы поведения, и я тоже использовал тему публикации, и я все еще получаю сообщение об ошибке.