我已经try 了正常的方式,但有try 使用BLOC State Management this视频在您管在我的项目它的请参考这个视频它对你很有帮助
E-mail Validation function个
emailValidation(emailValue) {
return RegExp(
r'^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$',
).hasMatch(emailValue);
}
Your Widget Using TextFormField:
TextFormField(
autovalidateMode: AutovalidateMode.onUserInteraction,
validator: (value) => value!.isEmpty
? 'Field Not Empty'
: !emailValidation(value)
? 'Enter Valid Email Address'
: null,
decoration: const InputDecoration(
border: OutlineInputBorder(),
hintText: 'Enter Email Address',
labelText: 'Email',
),
),
Variable Declaration个
final text = TextEditingController();
bool validate = false;
Dispose Method:个
void dispose() {
text.dispose();
super.dispose();
}
Your Widget Using TextField:
TextField(
onChanged: (value) {
setState(() {
text.text.isEmpty || !emailValidation(text.text)
? validate = true
: validate = false;
});
},
controller: text,
decoration: InputDecoration(
border: const OutlineInputBorder(),
labelText: 'Enter Email Address',
errorText: validate ? 'Enter Valid Email' : null,
),
),