Flutter,如何配置textController

问题描述 投票:0回答:1

我正在学习Flutter,在我的应用程序中,有两个textField链接到AlertDialog中的textController,以从用户那里获取输入作为文本,并将其显示在屏幕主体中。我自己无法解决的问题是,在AlertDialog的“保存”按钮中添加了setState((){})之后,文本将自动显示在主体屏幕上,按下“保存”后,此更改不会再次清除在TextFields中输入的文本。

我的代码:

class _HomeScreenState extends State<HomeScreen> {
  final TextEditingController titleController = TextEditingController();
  final TextEditingController textController = TextEditingController();
  DummyDataProvider notes;

  @override
  void dispose() {
    // Clean up the controller when the widget is disposed.
    titleController.dispose();
    textController.dispose();
    super.dispose();
  }

有问题的textControllers:

MaterialButton(
                  onPressed: () {
                    setState(() {
                      final title = titleController.text;
                      final text = textController.text;
                      NoteProvider.insertNote({'title': title, 'text': text});
                      Navigator.pop(context);
                    });

我的意思是不处理的文本:https://imgur.com/a/8pyTPM7https://imgur.com/a/lr8a3Eh

谢谢你!

flutter dart dispose setstate
1个回答
1
投票

您可以重置文本控制器。

例如,在onpressed中:

titleController.text = new TextEditingController();

textController.text = new TextEditingController();

不需要设置状态。

© www.soinside.com 2019 - 2024. All rights reserved.