“文本选择索引被限制(-1-> 0)以保持在边界内”在我的描述字段中

gam*_*ofe 5 dart flutter

我有一个包含几个字段的表单,但只有一个是由用户输入的。说明”。

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) 以保持在边界内。这可能不是您的错,因为某些键盘可能会超出范围进行选择。

是的,两次。

Mal*_*una 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)