This question already has answers here:
Can't get button press to work in flutter

(4个答案)


2年前关闭。




我创建了一个自定义小部件MyTimer,其中传递了一个回调函数,该函数必须在完成时调用,如屏幕快照所示。
dart - 为什么传递给Widget时立即回调被叫?-LMLPHP
这是我的MyTimer类代码:
 class MyTimer extends StatefulWidget {
  VoidCallback callback;
  MyTimer(this.callback);
  @override
  State<StatefulWidget> createState() => new MyTimerState();
}
但是在页面加载时会自动调用它。我该如何预防?
提前致谢!

最佳答案

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

new MyTimer(() => gameOver())

不使用() =>就会执行gameOver()并将结果传递给new MyTimer(...)

10-08 03:35