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() и он мне тут поможет или нет? Мои варианты решения на данный момент:

  1. перенести кнопку в другую страницу (убрать кнопки)
  2. использовать onChanged

Ответы (0 шт):