作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将计数器的值更改为 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();
}
}
最佳答案
如果您使用的是 Reactive State Manager您不需要调用 update()
函数。
要将计数器重置为 0,只需将 0 分配给 .value
属性即可。
所以像这样更改您的 Controller
它应该可以工作:
class Controller extends GetxController {
var counter = RxInt(0);
void increment() {
counter++;
}
re() {
counter.value = 0;
}
}
关于 flutter : How can I change variable with Getx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65157765/
我是一名优秀的程序员,十分优秀!