参数类型“void Function()?”不能分配给参数类型“void Function(String)?”

时间:2021-07-14 02:12:10

标签: flutter flutter-layout

我在尝试应用可重用组件的概念时遇到此错误。 有人可以帮忙吗? 我需要使 onFieldSubmitted 和 onChanged 成为可选函数。 我也尝试只使用 Function 来声明函数的名称而不是 VoidCallback ,但它没有说出来。 这是代码

Widget defaultTextBox({
  required TextEditingController inputController,
  required String boxLapel,
  VoidCallback? onSubmit,
  VoidCallback? changed,
  required VoidCallback pressed,
}) =>
    TextFormField(
      validator: (value) {
        if (value!.isEmpty) {
          return 'please enter password address';
        }
        return null;
      },
      controller: inputController,
      decoration: InputDecoration(
          labelText: boxLapel,
          labelStyle: TextStyle(fontSize: 20, color: Colors.black),
          border: OutlineInputBorder(
              borderRadius: BorderRadius.all(Radius.circular(9.0))),
          suffixIcon: IconButton(
            onPressed: pressed,
            icon: Icon(
               Icons.visibility),
          ),
          prefixIcon: Icon(
            Icons.lock,
            color: Colors.black,
          )),
      obscureText: true,
      keyboardType: TextInputType.visiblePassword,
       // error is here and here 
      onFieldSubmitted: onSubmit, // <-
      onChanged: changed, // <-
    );

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,我应该将函数声明如下:

required String? Function(String?)? onSubmit,