#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(). Это была глупая ошибка! Спасибо за вашу помощь