【问题标题】:Dart `void` vs `Function` vs `void Function()`Dart `void` vs `Function` vs `void Function()`
【发布时间】:2020-08-13 12:49:25
【问题描述】:

Flutter 的 InkWell 小部件有一个 onTap 类型的参数 void Function()。如果我声明并传递一个 void 方法,我会得到一个类型错误 This expression has a type of 'void' so its value can't be used. 如果然后我使用 Function,我还必须明确地使用 return null;。我只想使用 void,而省略显式的 return 语句。

有人能解释一下这些类型之间的区别吗?

  • void
  • Function
  • void Function()

(虽然听起来可能与其他问题相似,但我无法找到确切的答案。)

【问题讨论】:

  • 你能显示你的代码中出现类型错误的部分吗?
  • 对不起,我的意思是这是一个一般性问题,但我看到 void 问题的输入参数是给出类型错误的那个。有时间我会提供代码,或者投票删除。

标签: function flutter dart types void


【解决方案1】:

问题是:InkWell Widget 的 onTap 接受回调 void Function(一个不返回任何内容的函数),每次用户按下按钮时都会运行该回调。

很难确定,因为您没有共享代码,但我猜您可能正在运行该函数,而不是在没有括号的情况下传递它。因为您正在调用或运行该函数,所以您没有传递它,而是传递了返回的 void

尝试不带括号传递函数,这样它就不会运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 2017-12-05
    • 2014-12-11
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 2022-12-31
    相关资源
    最近更新 更多