【问题标题】:Flutter - Argument of type function can't be assigned to the parameter of type `void function()`Flutter - 类型函数的参数不能分配给类型“void function()”的参数
【发布时间】:2021-05-30 14:44:10
【问题描述】:

我为ElevatedButton() 创建了一个StatelessWidget,当我将selectHandler 传递给ElevatedButton()onPressed 参数时,我得到了这个错误 Argument of type function can't be assigned to the parameter of type void function()selectHandlerFunction 类型变量。

我哪里错了?

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,
      child: ElevatedButton(
        child: Text("Answer"), 
        onPressed: selectHandler
        )
    );
  }
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    onPressed 期待 void Function()(又名 VoidCallback),但 selectedHandler 的类型未指定函数的参数列表或返回类型。

    您可以将类型指定为final void Function() selectHandler,这意味着一个不带参数并返回void的函数。

    Flutter 还提供了 VoidCallback 类型作为 dart:ui 的一部分,它与 void Function() 相同,因此您也可以使用它,在这种情况下您的类型变为 final VoidCallback selectHandler

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 2021-10-22
      • 2022-01-17
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      相关资源
      最近更新 更多