【问题标题】:Fluter : How can I change variable with Getx?Fluter:如何使用 Getx 更改变量?
【发布时间】:2021-03-17 08:16:49
【问题描述】:

我想将 counter 的值更改为 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();
  }
}

【问题讨论】:

    标签: flutter flutter-getx


    【解决方案1】:

    如果您使用的是Reactive State Manager,则无需调用update() 函数。

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

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

    class Controller extends GetxController {
      var counter = RxInt(0);
    
      void increment() {
        counter++;
      }
    
      re() {
        counter.value = 0;
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-04
      • 2021-01-20
      • 2021-09-18
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多