【问题标题】:Flutter setstate() doesn't work with sleep()Flutter setstate() 不适用于 sleep()
【发布时间】:2019-12-21 15:06:26
【问题描述】:

我有一个简单的问题,但我是 Flutter 的新手。我必须更改 3 个按钮的颜色,然后等待 2 秒并调用另一个函数。 这是代码:

setState((){
   clr[0]= 0==gst ? Colors.green:Colors.red;
   clr[1]= 1==gst ? Colors.green:Colors.red;
   clr[2]= 2==gst ? Colors.green:Colors.red;
 });

 sleep(const Duration(seconds:2));

 cardKey.currentState.toggleCard(); // second function

问题是这段代码等待 2 秒然后更改颜色并调用第二个函数...

我也尝试在setstate() 中使用sleep()

【问题讨论】:

    标签: flutter async-await setstate


    【解决方案1】:

    您应该使用Future.delayed 来解决您的问题,因为不推荐使用sleep。确保将您的函数定义为async。但是,如果您不想标记为异步(或者该函数不适用于异步),则可以使用:

    Future.delayed(Duration(seconds: 2)).then((_) {
      cardKey.currentState.toggleCard(); // second function
    });
    

    更多阅读,我推荐this

    【讨论】:

      猜你喜欢
      • 2019-07-21
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2016-11-25
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 2019-08-29
      相关资源
      最近更新 更多