【发布时间】:2021-09-24 05:52:41
【问题描述】:
child: TextFormField(
controller: emailcontroller,
decoration: InputDecoration(
border: InputBorder.none,
hintText: "Email or Phone number",
hintStyle:
TextStyle(color: Colors.grey[400])),
keyboardType: TextInputType.emailAddress,
validator: (String value) { <= this line throw error
if (value.isEmpty) {
return 'Please Enter Name';
}
return null;
},
onSaved: (String value) { <= this line throw error
name = value;
},
)
“验证器:(字符串值)”抛出:
无法将参数类型“void Function(String)”分配给参数 键入'void Function(String?)?'.dartargument_type_not_assignable
“onSaved:(字符串值)”抛出:
参数类型“void Function(String)”不能分配给 参数类型 'void 函数(字符串?)?'.dartargument_type_not_assignable
当我检查 GitHub 代码时,我看到了相同的结构,但它没有抛出错误
child: TextFormField(
keyboardType: TextInputType.text,
decoration: buildInputDecoration(Icons.person, "Full Name"),
validator: (String value) {
if (value.isEmpty) {
return 'Please Enter Name';
}
return null;
},
onSaved: (String value) {
name = value;
},
),
“buildInputDecoration”函数:
InputDecoration buildInputDecoration(IconData icons,String hinttext) {
return InputDecoration(
hintText: hinttext,
prefixIcon: Icon(icons),
focusedBorder: OutlineInputBorder(
borderRadius: BorderRadius.circular(25.0),
borderSide: BorderSide(
color: Colors.green,
width: 1.5
),
),
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(25.0),
borderSide: BorderSide(
color: Colors.blue,
width: 1.5,
),
),
enabledBorder:OutlineInputBorder(
borderRadius: BorderRadius.circular(25.0),
borderSide: BorderSide(
color: Colors.blue,
width: 1.5,
),
),
);
}
【问题讨论】:
标签: flutter validation dart textformfield