Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 为什么在传递到小部件时立即调用回调_Dart_Flutter - Fatal编程技术网

Dart 为什么在传递到小部件时立即调用回调

Dart 为什么在传递到小部件时立即调用回调,dart,flutter,Dart,Flutter,我创建了一个自定义小部件MyTimer,其中我传递了一个回调函数,当它完成时必须调用该函数,如屏幕截图所示 以下是我的MyTimer类代码: class MyTimer extends StatefulWidget { VoidCallback callback; MyTimer(this.callback); @override State<StatefulWidget> createState() => new MyTimerState(); } 类M

我创建了一个自定义小部件
MyTimer
,其中我传递了一个回调函数,当它完成时必须调用该函数,如屏幕截图所示

以下是我的MyTimer类代码:

 class MyTimer extends StatefulWidget {
  VoidCallback callback;
  MyTimer(this.callback);
  @override
  State<StatefulWidget> createState() => new MyTimerState();
}
类MyTimer扩展StatefulWidget{
无效回调;
MyTimer(this.callback);
@凌驾
State createState()=>新建MyTimerState();
}

但当页面加载时,会自动调用它。如何防止这种情况发生?

您需要传递函数引用,而不是函数调用的结果

new MyTimer(() => gameOver())
如果没有
()=>
,则执行
gameOver()
,并将结果传递给
newmytimer(…)