Выберите StatelessWidget или StatefulWidget для подчиненного виджета с TextEditingController
Я работаю над кодом рефакторинга, чтобы отделить маленький кусочек виджетов. Там есть несколько столбцов с TextFields
в каждом.
Выбрали
StatelessWidget
так как он имеет большую производительность, может поместить связанный с TextEditingController код за пределы виджетов. Или включить некоторую логику вonChanged
мероприятие. но все же есть некоторые события, такие какclear text
не могу положить вonChanged
мероприятиеВыбрали
StatefulWidget
если я используюTextEditingController
включить внутри каждого суб виджета.
Как сделать выбор между StatelessWidget
а также StatefulWidget
когда делать код рефакторинга в такие маленькие виджеты?
Обновить
Вот мой текущий вывод, который можно обновить, если он не верен.
- Предпочитаю ставить
FocusNode
TextEditin parent
так как это связано с братом focusNode & parentNode; - Предпочитаю ставить
TextEdtingController
in parent
, если это TextField может быть вне экрана, как в длинном ListView, и в этом случае виджет дыры с unmount, поместите его в parent может сохранить текстовые состояния. - Предпочитаю ставить
animation self
как трясти TextField при вводе что-то не такin self
, Так как это своего рода особенность Я, не связанная с родителем.
1 ответ
Отредактируйте в ответ на обсуждение в разделе комментариев:
Вы должны пойти со вторым подходом при рефакторинге вашего кода в меньший StatefulWidgets
, И parent
должна иметь функцию для изменения содержимого вложенных TextFields и его animation
поведение, вызывая функции внутри него, как вы ранее указали, вам нужно управлять этим поведением.