ブロックでフラッターアプリを作成しています。
Flutter login with blocksで利用可能なコードに従いました
アプリにルートが定義されていない場合、期待どおりに機能します
class App extends StatelessWidget {
Widget build(BuildContext context) {
return Provider(
child: MaterialApp(
title: 'Log Me In!',
home: Scaffold(
body: LoginScreen(),
),
),
);
}
}
しかし、ルートを使用するようにアプリを変更すると
class App extends StatelessWidget {
Widget build(BuildContext context) {
return MaterialApp(
title: 'Log Me In!',
routes: {
'/':(context) => Provider(
child: Scaffold(
body: LoginScreen(),
),
)
},
);
}
}
ブロックコード
class Bloc extends Object with Validators {
final _email = BehaviorSubject<String>();
final _password = BehaviorSubject<String>();
// retrieve data from stream
Stream<String> get email => _email.stream.transform(validateEmail);
Stream<String> get password => _password.stream.transform(validatePassword);
Stream<bool> get submitValid => Observable.combineLatest2(email, password, (e, p) => true);
// add data to stream
Function(String) get changeEmail => _email.sink.add;
Function(String) get changePassword => _password.sink.add;
submit() {
final validEmail = _email.value;
final validPassword = _password.value;
print('$validEmail and $validPassword');
}
dispose() {
_email.close();
_password.close();
}
}
Observable.combileLatest2 はデータをストリーミングしていません (ただし、エラーをストリーミングします)。
Rxdart バージョン 0.19.0 および
Flutter 1.0.0 • チャネル ベータ •<a href="https://github.com/flutter/flutter.git" rel="nofollow noreferrer">https://github.com/flutter/flutter.git フレームワーク • リビジョン5391447fae (6 日前) • 2018-11-29 19:41:26-0800 エンジン • リビジョン 7375a0f414Tools • Dart 2.1.0 (ビルド 2.1.0-dev.9.4 f9ebf21297)
ここで何か間違ったことをしていますか?前もって感謝します