Flutter中Future.delayed方法失效:调用方法无延迟立即执行
Flutter中Future.delayed延迟失效的解决方法
你遇到的问题是因为调用Future.delayed时,第二个参数传的是method()——这会立即执行method方法,并把它的返回值传给Future.delayed,而不是等延迟时间到了再触发方法。
正确的写法有两种:
- 直接传递方法引用(不带括号):
Future.delayed(const Duration(milliseconds: 300), method);
- 如果需要给方法传参数,用匿名函数包裹:
Future.delayed(const Duration(milliseconds: 300), () { method(yourParam1, yourParam2); // 这里可以按需传入参数 });
原因很简单:Future.delayed的第二个参数要求是一个VoidCallback类型的函数(无参数、无返回值的函数对象)。当你加了括号(),就变成了执行函数并取结果,而不是传递函数本身,自然会跳过延迟直接执行。
内容的提问来源于stack exchange,提问作者Othman Shawgan
相关产品推荐
相关产品推荐

