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

时间:2017-04-04 10:47:49

标签: controller textfield flutter

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

重现(使用颤动画廊):

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

将以下内容添加到类 _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作为最后一个子项添加到Column(在我的情况下为第211-215行):

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

现在转到图库中的日期和时间选择器示例,在事件名称TextField中键入内容,按清除并继续键入。按下Clear后,将从TextField中删除该值。一旦继续输入,该值就会收到。

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

你能帮忙吗?

PS:&gt; flutter doctor:

  • [✓] Flutter(在Mac OS X 10.12.3 16D32上,频道母版)

    • 在/ Users / rainerwittmann / Flutter / flutter
    • 上晃动
    • 框架修订版0d402242c5(5小时前),2017-04-03 22:50:30
    • 引擎修订版878f0ff09d
    • 工具Dart版本1.23.0-dev.10.0
  • [✓]主机可执行兼容性

    • 已下载的可执行文件在主机上执行
  • [✓] Android工具链 - 针对Android设备开发(Android SDK 25.0.2)

    • Android SDK位于/ usr / local / opt / android-sdk
    • 平台android-25,build-tools 25.0.2
    • ANDROID_HOME = / usr / local / opt / android-sdk
    • Java二进制文件:/ Applications / Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java版本:OpenJDK运行时环境(版本1.8.0_112-release-b05)
  • [✓] iOS工具链 - 针对iOS设备开发(Xcode 8.3)

    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 8.3,Build版本8E162
    • ios-deploy 1.9.0
    • CocoaPods版本1.1.1
  • [✓] Android Studio(2.2版)

    • Android Studio at / Applications / Android Studio.app/Contents
    • Gradle版本2.14.1
    • Java版本:OpenJDK运行时环境(版本1.8.0_112-release-b05)
  • [✓] IntelliJ IDEA社区版(2017.1版)

    • Dart插件版本171.4006
    • Flutter插件版本12.0
  • [✓]连接设备

    • iPhone 7•59820DDC-6A72-475E-84C0-A2E837F62572•ios•iOS 10.3(模拟器)

1 个答案:

答案 0 :(得分:1)

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