TextEditingController text теряет значение при нажатие на любую кнопку flutter
Суть в том, я сделал в одном скрине несколько текстовых полей и кнопку добавления изображения. После того как я введу нужные тексты и последним загружаю изображение, мои поля теряют измененные значение. Я dispose не использовал потому что мне нужно было из Provider передать данные TextEditingController(text: Provider.of<Numb>(context, listen: true).dataUser['login']);
class SettingPage extends StatefulWidget {
const SettingPage({Key? key}) : super(key: key);
@override
State<SettingPage> createState() => _SettingPageState();
}
class _SettingPageState extends State<SettingPage> {
bool bools = true;
UploadTask? task;
Uint8List? file;
@override
Widget build(BuildContext context) {
final login = TextEditingController(
text: Provider.of<Numb>(context, listen: true).dataUser![0]['login']);
final password = TextEditingController(
text: Provider.of<Numb>(context, listen: true).dataUser![0]
['password']);
return Scaffold(
body: Center(
child: Column(
children: [
TextField(
controller: login ,
textInputAction: TextInputAction.done,
obscureText: false,
),
TextField(
controller: password,
textInputAction: TextInputAction.done,
obscureText: true,
),
ElevatedButton(
onPressed: () {},
child: Text('Загрузить Изображение'),
),
ElevatedButton(
onPressed: () {},
child: Text('Сохранить'),
),
])
),
Я пробовал использовать onChange работает, но при вводе тексте виджет начинает лагать(тормозить)
onChanged: (value) {Provider.of<Numb>(context, listen: false).setData('login', value);},
Как решить проблему? Есть варианты у кого? буду благодарен) И я до конца не понял как работает dispose() и он мне тут поможет или нет? Мои варианты решения на данный момент:
- перенести кнопку в другую страницу (убрать кнопки)
- использовать onChanged