我有一个包含几个字段的表单,但只有一个是由用户输入的。说明”。
child: Textarea(
label: "Descrição *",
onChanged: (value) => controller.setDescricao(value),
),
Run Code Online (Sandbox Code Playgroud)
Textarea是一个使用另一个自定义小部件的分离小部件TextInput,它是:
return TextFormField(
controller: TextEditingController(),
style: TextStyle(fontSize: 13.0),
decoration: InputDecoration(
...
Run Code Online (Sandbox Code Playgroud)
我正在使用 MobX,并且我有一个computed操作canSubmit来验证字段是否不为空,或者在“描述”的情况下,如果它不为空:
@computed
bool get canSubmit =>
cliente != null &&
projeto != null &&
dataInicio != null &&
dataFim != null &&
(descricao.isNotEmpty || descricao != '');
Run Code Online (Sandbox Code Playgroud)
有问题的问题正在以某种方式发生,因为如果这样。如果我填写了所有字段并让“描述”最后填写,则我键入的第一个字母或数字将不会出现在该字段中,它会验证canSubmit。我用一个简单的 进行了测试print(description.isEmpty),在输入第一个字母后它会打印false,即使正如我所说的那样,该字段中没有显示任何内容。不仅如此,如果我尝试擦除空字母,则会显示以下消息:
D/flutter (28047):文本选择索引被限制 (-1->0) 以保持在边界内。这可能不是您的错,因为某些键盘可能会超出范围进行选择。
D/flutter (28047):文本选择索引被限制 (-1->0) 以保持在边界内。这可能不是您的错,因为某些键盘可能会超出范围进行选择。
是的,两次。
In TextField Use Like This
var _nameController;
on init(){
_nameController=TextEditingController(text:'');
}
onChange:(String newName){
model.name=newName;
_nameController.text=newName;
_nameController.selection=TextSelection.collapsed(offset:_nameController.text.length);
}Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3403 次 |
| 最近记录: |