This question already has answers here:
What does the empty parentheses after the onPressed property mean in Dart?

(5个答案)


去年关闭。




单击图标按钮后,我试图调用showDatePicker小部件,但是,当我调用onTap方法时,出现以下错误:



请在下面找到我的代码:

showDatePicker代码
DateTime selectedDate = DateTime.now();

  Future<Null> _selectDate(BuildContext context) async {
    final DateTime picked = await showDatePicker(
        context: context,
        initialDate: selectedDate,
        firstDate: DateTime(2018, 1),
        lastDate: DateTime(2101));
    if (picked != null && picked != selectedDate)
      setState(() {
        selectedDate = picked;
      });
  }

IconButton代码
    IconButton(
        icon: Icon(Icons.date_range),
        onPressed: _selectDate(context)),

我正在使用StatefulWidget,请让我知道如何解决此问题。谢谢 :)

最佳答案

您正在直接调用_selectDate,而不是传递一个调用_selectDate的函数。

将您的onPressed更改为onPressed: (){_selectDate(context);}

关于flutter - flutter 错误:无法将参数类型 'Future<void>'分配给参数类型 '() → void' ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56841844/

10-09 10:16