#flutter #flutter-getx
#flutter #flutter-getx
Вопрос:
Я хочу изменить значение счетчика на 0. Но каждый раз, когда я пытаюсь, это не работает, и я больше не могу использовать increment() . Я считаю, что это решение было бы простым, но я не могу этого понять.
class Home extends StatelessWidget {
final controller = Get.put(Controller());
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.offline_bolt),
onPressed: () {
controller.increment();
},
)),
body: Center(
child: Obx(() => Text('${controller.counter}')),
),
floatingActionButton: FloatingActionButton(
onPressed: () {
controller.re();
},
child: Icon(Icons.access_alarms),
),
);
}
}
class Controller extends GetxController {
var counter = RxInt(0);
void increment() {
counter ;
update();
}
re() {
counter = RxInt(0);
update();
}
}
Ответ №1:
Если вы используете диспетчер реактивных состояний, вам не нужно вызывать эту update()
функцию.
Чтобы сбросить счетчик обратно на 0, просто присвоите .value
свойству значение 0.
Так что измените свой Controller
вот так, и он должен работать:
class Controller extends GetxController {
var counter = RxInt(0);
void increment() {
counter ;
}
re() {
counter.value = 0;
}
}