【发布时间】:2020-09-09 07:34:31
【问题描述】:
我有一个用户信息表单,如果其中一个字段为空,我想禁用提交按钮,但我的 setState 没有更新标志。
这是我的validateFields 函数,它在build 方法中被调用。 正则表达式 100% 正确(我检查了多次)
void validateFields() {
RegExp regExp = new RegExp(r'[!@#<>?"\s:_`~;[\]\\|=+)(*&^%-]|^$');
if (regExp.hasMatch(nameController.text) || regExp.hasMatch(surnameController.text) || regExp.hasMatch(phoneController.text)){
setState(() {
isButtonDisabled = true;
});
}
else {
setState(() {
isButtonDisabled = false;
});
}
}
这是我的提交按钮
onPressed: isButtonDisabled ? null : (){
//upload the form
}
【问题讨论】:
-
什么时候调用函数validateFields?
-
@AnirudhBagri 我在return语句之前的build方法中调用它
-
我认为 isButtonDisabled = true;这应该在 else 块中,反之亦然
-
@jutsm555 不应该