Flutter setstate() 不适用于 sleep()

Flutter setstate() doesn't work with sleep()

我有一个简单的问题,但我是 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()

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

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

更多阅读,我推荐this