flutter 1.17.3
以下のようなコードを書いてTextFieldを共通的に使用しようとしました。
この状態だとテキストを入力してもエラーにはならないですが、
Tapのイベントも使用したくなり、修正しました。
dart
1 2 HogeTextField( 3 hintText: 'メールアドレスを入力してください', 4 labelText: 'メール', 5 ), 6 7 8 9class HogeTextField extends TextField { 10 HRTextField({ 11 String hintText, 12 String labelText, 13 TextEditingController controller, 14 void Function(String) onChanged, 15 }) : super( 16 controller: controller, 17 decoration: InputDecoration( 18 labelText: labelText, 19 hintText: hintText, 20 ), 21 onChanged: (text) => onChanged(text), 22 ); 23}
修正
dart
1class HogeTextField extends TextField { 2 HRTextField({ 3 String hintText, 4 String labelText, 5 TextEditingController controller, 6 void Function(String) onChanged, 7 void Function() onTap, //追加箇所 8 }) : super( 9 controller: controller, 10 decoration: InputDecoration( 11 labelText: labelText, 12 hintText: hintText, 13 ), 14 onChanged: (text) => onChanged(text), 15 //追加箇所 16 onTap: () => onTap(), 17 ); 18}
この修正をすると、エラーが出るようになりました。
エラー内容
debug
1════════ Exception caught by gesture ════════ 2The following NoSuchMethodError was thrown while handling a gesture: 3The method 'call' was called on null. 4Receiver: null 5Tried calling: call() 6 7When the exception was thrown, this was the stack 8#0 new HogeField.<anonymous closure> 9#1 _TextFieldSelectionGestureDetectorBuilder.onSingleTapUp 10#2 _TextSelectionGestureDetectorState._handleTapUp 11#3 TapGestureRecognizer.handleTapUp.<anonymous closure> 12#4 GestureRecognizer.invokeCallback 13... 14Handler: "onTapUp" 15Recognizer: _TransparentTapGestureRecognizer#83b67 16 debugOwner: _TextSelectionGestureDetectorState#92c89 17 state: ready 18 won arena 19 finalPosition: Offset(309.7, 395.0) 20 finalLocalPosition: Offset(299.7, 29.0) 21 button: 1 22 sent tap down 23════════════════════════════════════════════ 24
onChangedは何も描かなくてもエラーにならないのに、
onTapはなぜエラーになるのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/30 09:09
2020/06/30 09:22
2020/06/30 09:24