2

ブロックでフラッターアプリを作成しています。

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)

ここで何か間違ったことをしていますか?前もって感謝します

4

1 に答える 1