(BLoC)Snapshot.hasData始终返回false

时间:2020-04-21 17:45:48

标签: flutter flutter-layout flutter-test flutter-bloc

这是我第一次在我的应用中实现services.AddControllers() .AddJsonOptions(o => { o.JsonSerializerOptions.PropertyNamingPolicy=JsonNamingPolicy.CamelCase; o.PropertyNameCasInsensitive=true });

我遵循了在github中找到的教程,并复制了他的代码。但就我而言,我的BLoC总是返回false。

BLoC代码:

snapshot.hasData

登录页面:

class LoginBloc extends Object with Validators implements BaseBloc {
  final _emailController = BehaviorSubject<String>();
  final _passwordController = BehaviorSubject<String>();

  Function(String) get emailChanged => _emailController.sink.add;
  Function(String) get passwordChanged => _passwordController.sink.add;

  Stream<String> get email => _emailController.stream.transform(emailValidator);
  Stream<String> get password =>
      _passwordController.stream.transform(passwordValidator);

  Stream<bool> get loginCheck =>
      Rx.combineLatest2(email, password, (e, p) => true);

  submit() {
    print("xyx");
  }

  @override
  void dispose() {
    _emailController?.close();
    _passwordController?.close();
  }
}

abstract class BaseBloc {
  void dispose();
}

updateForm方法:

StreamBuilder<Object>(
                      stream: loginBloc.loginCheck,
                      builder: (context, snapshot) {
                        return GestureDetector(
                          onTap: () {
                            updateForm(0, snapshot.hasData);
                          },
                          child: Text(
                            "Login",
                            textAlign: TextAlign.center,
                            style: TextStyle(
                                fontSize: fontSizeSmall,
                                color: _status == 0
                                    ? Colors.white
                                    : Color(colorDisabled)),
                          ),
                        );
                      }),

感谢您的帮助!

0 个答案:

没有答案