为什么在传递给Widget时立即回调被调用

时间:2018-05-23 12:23:49

标签: dart flutter

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

enter image description here

这是我的MyTimer类代码:

 class MyTimer extends StatefulWidget {
  VoidCallback callback;
  MyTimer(this.callback);
  @override
  State<StatefulWidget> createState() => new MyTimerState();
}

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

提前致谢!

1 个答案:

答案 0 :(得分:2)

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

new MyTimer(() => gameOver())

执行() => gameOver()并将结果传递给new MyTimer(...)