flutter 如何在命中递减值为0时不返回负值

bis0qfac  于 2023-03-24  发布在  Flutter
关注(0)|答案(3)|浏览(111)

我试图实现值不允许用户传递负值作为此按钮的功能来打印页面。

class _QuantityCounterState extends State<QuantityCounter> {
  int _counter = 0;

  void increment() {  
    setState(() {
      _counter++;
    });
  }

  void decrement() {  
    setState(() {
      _counter--;
    });
  }
ejk8hzay

ejk8hzay1#

更优雅的解决方案:

import 'dart:math';
 

    void decrement() {  
        setState(() {
          _counter = max(_counter-1, 0);
        });
      }
x7rlezfr

x7rlezfr2#

void decrement() {  
    setState(() {
      _counter=<0 ? _counter=0 : _counter--;
    });
  }
zwghvu4y

zwghvu4y3#

你可以这样做一个扩展:

extension MakePositive on int {
  int toPositive() {
    return this < 0 ? 0 : this;
  }
}

像这样使用它:

void decrement() {  
    setState(() {
      _counter = (_counter-1).toPositive();
    });
  }

相关问题