【问题标题】:The argument type 'Function' can't be assigned to the parameter type 'void Function(String?)?' what to do here :)参数类型“函数”不能分配给参数类型“无效函数(字符串?)?”在这里做什么:)
【发布时间】:2021-10-07 07:13:42
【问题描述】:

我卡在这个问题上,参数类型'Function'不能分配给参数类型'void Function(String?)?'。

问题以粗体、onSave 和验证器显示,我们将不胜感激。


import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

import 'custom_text.dart';

class CustomTextFormField  extends StatelessWidget {
   
   final String text;
   final String hint;
   final  Function onSave;
   final  Function validator;

  CustomTextFormField({ required this.text, required this.hint , required this.onSave, required this.validator});



  @override
  Widget build(BuildContext context) {
    var textFormField = TextFormField(
                        **onSaved: onSave ,
                        validator: validator ,**
                        decoration: InputDecoration(
                          hintText: hint,
                          hintStyle: TextStyle(color: Colors.black,
                          
                          
                          
                          ), fillColor: Colors.white 
                        ),
                      );
    return Container(
      child:  Column(
                children: [
                  CustomText(
                    text:text, 
                    fontSize: 14, 
                    color: Colors.grey.shade900,),
                    

                ],
              ),
    );
  }
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    将您的构造函数参数从final Function onSave; 更改为final Function(String?)?。 (验证器也是如此)

    由于 onSavevalidator 在回调中返回 String 类型的值,如果您想将其添加为参数,那么您也需要传递该值。

    当您按上述方式更改代码时,您可以将您的小部件用作:

    CustomTextFormField(
       text: "Testing",
       hint: "This is a hint",
       onSave: (value) => print("Value: $value"),
       validator: (value) {
         if (value!.isNotEmpty) {
           return null;
         } else {
           return AppStrings.fieldCanNotBeEmpty;
         }
       }
    );
    

    供参考:

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 2021-10-28
      • 2022-01-21
      • 2021-09-20
      • 2021-07-17
      • 1970-01-01
      • 2021-07-06
      • 2021-10-21
      • 2021-10-13
      相关资源
      最近更新 更多