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