繁体   English   中英

Flutter:如何使用 Getx 更改变量?

[英]Flutter : How can I change variable with 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();
  }
}

如果您使用的是反应式 State 管理器,则无需调用update() function。

要将计数器重置为 0,只需将 0 分配给.value属性。

因此,像这样更改您的Controller ,它应该可以工作:

class Controller extends GetxController {
  var counter = RxInt(0);

  void increment() {
    counter++;
  }

  re() {
    counter.value = 0;
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM