【问题标题】:The argument type 'Function' can't be assigned to the parameter type 'void Function()?' Dart参数类型“Function”不能分配给参数类型“void Function()?”镖
【发布时间】:2022-01-30 22:46:02
【问题描述】:
import 'package:flutter/material.dart';

class Answer extends StatelessWidget {
  final Function selectHandler;

  Answer(this.selectHandler);

  @override
  Widget build(BuildContext context) {
    return Container(
      width: double.infinity,
      color: Colors.pink,
      child: ElevatedButton(
        child: Text('Answer 1'),
        onPressed: selectHandler,
      ),
    );
  }
}
[vscode截图][1]

我从 Dart(颤振)YouTube 课程(即从 2019 年开始)中获得了这段代码,并且在最后一个“selectHandler”(onPressed 之后)上出现错误 ->“参数类型 'Function' can' t 被分配给参数类型 'void Function()?'” 我不太明白,因为它在视频中运行良好。 我很确定这门课程太旧了,但如果你能帮助我,那会很酷。谢谢 ! (PS:我的flutter医生不错)

【问题讨论】:

    标签: function dart void


    【解决方案1】:

    替换

    final Function selectHandler;
    

    final void Function() selectHandler;
    

    看到这个ref doc

    【讨论】:

    • 当我这样做时,我遇到了更多其他问题。实际上,这个问题特别解决了,但在第一个“功能”中,我有“期望找到';'”,当我添加一个时,它变得更糟。
    • A 修复了答案中的语法。 void Function() 作为函数类型。
    • 查看编辑。 @lrn 错字^_^,谢谢。
    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2022-01-17
    • 2021-08-11
    • 1970-01-01
    • 2021-10-22
    • 2022-08-05
    • 2021-09-10
    • 2021-02-12
    相关资源
    最近更新 更多