我在尝试应用可重用组件的概念时遇到此错误。 有人可以帮忙吗? 我需要使 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, // <-
);
答案 0 :(得分:0)
我找到了一个解决方案,我应该将函数声明如下:
required String? Function(String?)? onSubmit,