#flutter #dart
Вопрос:
Я неоднократно использую одно и то же поле, поэтому вместо размещения текстового контроллера в главном виджете я сделал это в пользовательском поле. Нормально ли это делать так, или произойдет утечка памяти.
class CTextField2 extends StatefulWidget { const CTextField2({ Key? key, required this.textController, required this.valid, }); final TextEditingController textController; final String valid; @override Statelt;CTextField2gt; createState() =gt; _CTextField2State(); } class _CTextField2State extends Statelt;CTextField2gt; { @override void dispose() { widget.textController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { return TextFormField( controller: widget.textController, keyboardType: TextInputType.text, validator: (value) { if (value == null || value.isEmpty) { return widget.valid; } return null; }, ); } }
Комментарии:
1. Это потенциально может привести к сбою, если родительский виджет зарегистрировал слушателей для этого
TextField
, и вы получите сообщение об ошибке, напримерCould not use listenable after dispose.