提问者:小点点

如何将“Function”类型的参数分配给“void Function()”类型的参数?


我正在尝试创建一个像这样的无状态小部件:

import 'package:flutter/material.dart';

class Answers extends StatelessWidget {
  final Function nextQuestion;

  Answers(this.nextQuestion);

  @override
  Widget build(BuildContext context) {
    return ElevatedButton(
      onPressed: nextQuestion,
      child: Text("Answer"),    
    );
  }
}

但是,onPed参数中出现错误:"参数类型'Function'无法分配给参数类型'void Function()?'". 如何解决?


共3个答案

匿名用户

只需将next问题的类型更改为void Function()

final void Function() nextQuestion;

匿名用户

变化

  final Function nextQuestion;

final VoidCallback nextQuestion;

这解决了我的问题。

匿名用户

如果您有一个函数不返回没有参数的数据,则可以使用它。将您的数据类型从Function更改为VoidCallback。

最终VoidCallback next问题;

       or you can put anonymous function in front of onPressed (){}

推送:()=