【发布时间】:2020-04-21 08:59:23
【问题描述】:
我正在学习 Flutter,我在我的应用程序中有两个 textFields 链接到 AlertDialog 中的 textControllers 以获取用户的输入作为文本并将其显示在屏幕主体的卡片中。我自己无法解决的问题是,在 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();
}
有问题的文本控制器:
MaterialButton(
onPressed: () {
setState(() {
final title = titleController.text;
final text = textController.text;
NoteProvider.insertNote({'title': title, 'text': text});
Navigator.pop(context);
});
我所说的文本不处理是什么意思: https://imgur.com/a/8pyTPM7, https://imgur.com/a/lr8a3Eh
提前谢谢你!
【问题讨论】:
-
请澄清您的问题描述并缩小您共享的代码范围。对于
TextController未清除的问题,150 行代码过多。此外,您共享了我们无法使用的代码,因为我们没有类并且与问题无关。 stackoverflow.com/help/how-to-ask -
感谢您的建议,我似乎需要它,因为我是这个平台的新手。我继续编辑了我的帖子,我希望现在更加清晰和准确。祝你有美好的一天!
标签: flutter dart dispose setstate