前提・実現したいこと
FlutterでiOSアプリを作成しています。
新規作成した画面に遷移した際、アプリ終了しました。
正しく遷移するよう修正したいです。
発生している問題・エラーメッセージ
新規作成した画面(HistoryAddPage)に遷移した際、アプリが終了し以下のエラーメッセージがコンソールに出力されました。
lost connectionのみ出力され、原因の調査が難しいです。
Performing hot reload... Syncing files to device iPhone 12 Pro Max... Reloaded 1 of 717 libraries in 386ms. Lost connection to device.
該当のソースコード
dart
1import 'package:flutter/cupertino.dart'; 2import 'package:flutter/material.dart'; 3import 'package:provider/provider.dart'; 4import 'package:training_app/common_func.dart'; 5import 'package:training_app/presentation/history/history_model.dart'; 6import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; 7import 'package:intl/intl.dart'; 8 9class HistoryAddPage extends StatelessWidget { 10 final String uid; 11 HistoryAddPage(this.uid); 12 var formatter = new DateFormat('yyyy/MM/dd(E) HH:mm'); 13 14 Widget build(BuildContext context) { 15 final titleController = TextEditingController(); 16 return ChangeNotifierProvider<HistoryModel>( 17 create: (_) => HistoryModel(), 18 child: Scaffold( 19 appBar: AppBar( 20 title: Text('add work history'), 21 ), 22 body: Consumer<HistoryModel>( 23 builder: (context, model, child) { 24 return Padding( 25 padding: const EdgeInsets.all(8.0), 26 child: Column( 27 children: <Widget>[ 28 // TextField( 29 // autofocus: false, 30 // decoration: InputDecoration( 31 // hintText: 'title', 32 // ), 33 // controller: titleController, 34 // onChanged: (text) { 35 // model.history.title = text; 36 // }, 37 // ), 38 Text( 39 formatter.format(model.history.date), 40 ), 41 ElevatedButton( 42 onPressed: () { 43 DatePicker.showDateTimePicker( 44 context, 45 showTitleActions: true, 46 onChanged: (date) { 47 print('change $date'); 48 }, 49 onConfirm: (date) { 50 model.history.date = date; 51 }, 52 // Datepickerのデフォルトで表示する日時 53 currentTime: DateTime.now(), 54 // localによって色々な言語に対応 55 // locale: LocaleType.en 56 ); 57 }, 58 child: Icon(Icons.access_time), 59 ), 60 ElevatedButton( 61 child: Text('追加'), 62 onPressed: () async { 63 try { 64 await model.addHistory(); 65 await CommonFunc.cShowDialog(context, '追加しました'); 66 Navigator.pop(context); 67 } catch (e) { 68 CommonFunc.cShowDialog(context, e.toString()); 69 } 70 }, 71 ), 72 ], 73 ), 74 ); 75 }, 76 ), 77 ), 78 ); 79 } 80}
試したこと
-
Android Studio、simulatorの再起動、リフレッシュ
-
コメントアウト→実行を繰り返し原因となる部品を探しました。結果以下のTextFieldをコメントアウトすると画面に遷移ができました。その後、コメントアウトを外し、ホットリロードを行うと、アプリが終了しました。
dart
1 TextField( 2 autofocus: false, 3 decoration: InputDecoration( 4 hintText: 'title', 5 ), 6 controller: titleController, 7 onChanged: (text) { 8 model.history.title = text; 9 }, 10 ),
補足情報(FW/ツールのバージョンなど)
Flutter 2.1.0-12.1.pre
Dart 2.13.0
Android Studio 4.1.3
Simulator 12.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。