我在TextField
中输入文本。当我单击按钮转到另一页并返回时,TextField
中的文本消失。有人遇到过这个问题吗?可以给我一些建议吗?
我的代码:
Column(
children: [
ListTile(
onTap: () async {
Navigator.of(context).push(MaterialPageRoute(builder: (context) => …)); // In fact, I used go_router, just replaced it with the Navigator that everyone should know
},
leading: const Icon(Icons.location_pin, color: Colors.black),
title: Text("Location"),
),
ListTile(
leading: const Icon(Icons.message, color: Colors.black),
title: TextFormField(
controller: messageController,
decoration: InputDecoration(
border: InputBorder.none,
hintText: "Message",
),
),
),
],
),
如果您需要更多信息,请随时发表评论。
为什么在Flutter中,当我进入另一个页面时,TextField
中的文本消失了?我将感激任何帮助。提前感谢!
1条答案
按热度按时间dxxyhpgq1#
这是因为您在导航到此页面时创建了
TextEditingController
,因此它将使用空文本创建。因此,您可以使控制器全局化,而不是在
StatefulWidget
内部。看评论。
您必须像这样在外部初始化它,或者使用状态管理包,例如
bloc
或provider
:当你不再需要它的时候就用
messageController.dispose()
处理掉它