TextField controller.clear() 实际上并没有清除 TextField

TextField controller.clear() doesn't actually clear the TextField

我在实现 TextField 时遇到一些困难。更具体地说,我尝试使用控制器清除按钮的 onPress 方法上的 TextField。 controller.clear() 会从 The TextField 中删除文本,但是一旦您继续键入,旧值就会重新出现。

重现(使用 flutter-gallery):

修改 lib/demo/material/date_and_time_picker_demo.dart 以将控制器添加到其中一个 TextFields:

将以下内容添加到 class _DateAndTimePickerDemoState 的开头(在我的例子中是第 124 行):

class _DateAndTimePickerDemoState extends State<DateAndTimePickerDemo> {
++  TextEditingController _controller = new TextEditingController();
  DateTime _fromDate = new DateTime.now();
  ...

将以下行添加到第一个 TextField(在我的例子中是第 146 行):

new TextField(
++  controller: _controller,
  decoration: const InputDecoration(
    labelText: 'Event name',
  ),
  style: Theme.of(context).textTheme.display1,
),

添加一个新的 FlatButton 作为列的最后一个子项(在我的例子中是第 211 - 215 行):

new FlatButton(
  onPressed: () {
    _controller.clear();
  },
  child: new Text('Clear'),
)

现在转到库中的日期和时间选择器示例,在事件名称文本字段中键入内容,按清除并继续键入。一旦您按下 Clear,该值就会从 TextField 中删除。一旦您继续输入,价值就会增加。

我通过在想要清除 TextField 时总是创建一个新的 TextEditingController 来解决这个问题。这有效,但似乎不是预期的方法。

你能帮忙吗?

PS:>扑博士:

听起来像个错误。您愿意在 https://github.com/flutter/flutter/issues/new 提交错误吗?