【问题标题】:The argument type 'Function?' can't be assigned to the parameter type 'void Function(String)?'参数类型“功能?”不能分配给参数类型 'void Function(String)?'
【发布时间】:2021-11-16 10:24:24
【问题描述】:

我需要创建一个共享组件但是出现这个错误

虽然我将 Function 类型更改为 VoidCallback 类型但它不起作用, 请帮忙

Widget defaultFormField({
       required TextEditingController controller,
       required String label,
       required TextInputType type,
       required VoidCallback validate,
       Function? onSubmit,
       required IconData prefix}) => 
       onFieldSubmitted: onSubmit,
       validator: validate,
       controller: controller,
       keyboardType: type,    
);

【问题讨论】:

    标签: flutter components shared


    【解决方案1】:

    您需要将onSubmit 传递为Function(String)?。试试这个:

    Widget defaultFormField({
           required TextEditingController controller,
           required String label,
           required TextInputType type,
           required VoidCallback validate,
           Function(String)? onSubmit,
           required IconData prefix}) => 
           onFieldSubmitted: onSubmit,
           validator: validate,
           controller: controller,
           keyboardType: type,    
    );
    

    【讨论】:

    • 非常感谢,但这解决了 onsubmit Function 错误和 validate Function 错误仍然存​​在。
    • 用字符串替换 VoidCallback?验证参数的函数(字符串?)。
    【解决方案2】:

    Function? 更改为Function(String)?

    【讨论】:

    • 非常感谢,但这解决了 onsubmit Function 错误和 validate Function 错误仍然存​​在。
    猜你喜欢
    • 2021-10-22
    • 2023-04-05
    • 1970-01-01
    • 2022-01-24
    • 2021-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多