首页 > 解决方案 > 为什么我不能在子小部件中使用我为 onTap 传递的函数?

问题描述

我刚刚开始尝试学习颤振,并且在使用父小部件中的函数时遇到问题。

这是我要使用该功能的文件: https ://github.com/sketchbuch/flutter-naughts-and-crosses/blob/master/lib/widgets/game/board.dart

这就是它的定义: https ://github.com/sketchbuch/flutter-naughts-and-crosses/blob/master/lib/screens/game.dart

该函数在父窗口小部件中设置状态,需要将索引号作为参数,但颤振不会让我这样使用它。

VSC 显示错误:“此处的表达式的类型为 'void',因此无法使用。” 但我不确定如何解决这个问题。

感谢任何提示......我知道这个应用程序可能有很多问题,但这是我第一次尝试使用颤振

标签: flutter

解决方案


首先,请在将来正确格式化您的问题,使用相关的代码片段而不是链接文件,更多信息:https ://stackoverflow.com/help/how-to-ask

现在您的问题是由于对=>运算符的错误使用

  onTap: () => {setSquare(1)}

您在这里所做的是返回一个包含该函数的对象。使用正确的 dart 语法,您可以将其编写为:

  onTap: () {setSquare(1);}

或者

  onTap: () => setSquare(1),

推荐阅读