インポート 'パッケージ:フラッター/ material.dart' ; インポート 'パッケージ:rxdart / rxdart.dart' ; インポート「ダーツ:非同期」; クラス RxDartDemoは延びStatelessWidget { @Override ウィジェットビルド(BuildContextコンテキスト){ 戻り足場を( アプリケーションバー:アプリケーションバー( タイトル:テキスト( 'RxDartDemo' )、 標高: 0.0 、 )、 本体:RxDartDemoHome() )。 } } クラス RxDartDemoHomeは延びStatefulWidgetを{ @Overrideを _RxDartDemoHomeState createState() => _RxDartDemoHomeState(); } クラス _RxDartDemoHomeStateが延びている状態<RxDartDemoHome> { PublishSubjectの<string> _textFieldSubjectは、 @Override ボイドinitState(){ スーパー.initState()。 _textFieldSubject = PublishSubjectの<string> (); _textFieldSubject // .MAP((アイテム)=> 'アイテム:$アイテム') // .where((アイテム)=> item.length> 9) .debounce(所要時間(ミリ秒:500 )) .listen((データ) => 印刷(データ))。 //観察<ストリング> _observable = // // 観察(Stream.fromIterable([ 'ハロー'、 '您好'])); // // Observable.fromFuture(Future.value( 'こんにちは〜')); // // Observable.fromIterable([ 'ハロー'、 '您好'])。 // // Observable.just( 'こんにちは〜'); // Observable.periodic(時間(秒:3)、(X)=> x.toString()); // _observable.listen(印刷)。 // PublishSubjectの<string> _subject = PublishSubjectの<string>(); // BehaviorSubjectの<string> _subject = BehaviorSubjectの<string>(); // ReplaySubject <文字列> // _subject.add( 'こんにちは'); // _subject.add( 'はいはい'); // _subject.add( 'こんにちは'); // _subject.listen((データ)=>印刷( '1を聞く:$データ')); // _subject.listen((データ)=>プリント(2 'を聴く:$ {data.toUpperCase()}')); // _subject.close(); } @Override ボイド廃棄を(){ スーパー.dispose()。 _textFieldSubject.close()。 } @Override ウィジェット(BuildContextコンテキスト)を構築{ 戻りテーマ( データ:Theme.of(コンテキスト).copyWith( のprimaryColor:Colors.black、 、) 子:テキストフィールド( onChangedイベント:(値){ _textFieldSubject.add( '入力:$値' )。 }、 onSubmitted:(値){ _textFieldSubject.add( '提出:$値を' ); }、 装飾:InputDecoration( labelText: 'タイトル' 、 充填:真、 )、 )、 )。 } }