Трепетание — логическое значение продолжает сбрасываться после вызова Navigator.pop()

#flutter #dart

#флаттер #dart

Вопрос:

У меня есть класс под названием Counter ,

    int value1;
    bool isValueValid;
    
          class Counter {
            void init(Data data) {
            if(data == null) {
            value1 = 0;
            isValueValid = true;
            }
          }
     }
  

Метод init() счетчика вызывается в initState() моем приложении,

 void initState() {
Counter().init(widget.data);
super.initState();
}
  

Значение value1 or isValueValid устанавливается в 0 и false соответственно на onTap() MaterialButton , однако, когда я перехожу на другую страницу, а затем возвращаюсь на ту же страницу с помощью Navigator.pop() , значение isValueValid снова становится истинным, хотя оно должно быть ложным. Мой метод Counter().init больше нигде не вызывается в моем приложении.

       MaterialButton(
        height: 40,
        onPressed: () {
        if(value1 >= 1 || isValueValid) {
        print('loop entered');
        value1 = 0;
        isValueValid = false;
          setState(() {} 
// I need to call `setState` to change the color of a `Container` which is dependent on the bool `isValueValid`
        }
        });
  

Комментарии:

1. Где isValueValid хранится?

2. isValueValid — это глобальная переменная, определенная в моем доме

3. Вызывается ли Counter() конструктор где-либо еще в вашем приложении, даже если init метод нет?

4. Итак, я вызывал Counte().init в другом onTap() и из-за проблемы в моем if else это вызвало его в Navigator.push() вместо pop(). Это была глупая ошибка! Спасибо за вашу помощь