【发布时间】:2019-08-27 21:08:23
【问题描述】:
我有一个带有 TextField 的小部件,我正在从 StreamBuilder 初始化,试图使用 bloc 模式。一个联系人模型通过流进来。这是最初填充 TextField 的工作。我的问题是关于在用户更新 TextField 然后按下保存按钮后读取值。如何从 TextField 中读取值。我已经包含了一个我正在尝试做的简单示例。
void getTextValues() {
//???
}
@override
Widget build(BuildContext context) {
return StreamBuilder<Contact>(
stream: bloc.getContact,
builder: (context, contact) {
return Column(
children: <Widget>[
TextField(
controller: TextEditingController(text: contact.data.name),
),
new RaisedButton(
padding: const EdgeInsets.all(8.0),
textColor: Colors.white,
color: Colors.blue,
onPressed: getTextValues,
child: new Text("Save"),
),
],
);
},
);
}
我想我可以声明一个 TextEditingController 并将其分配给控制器属性,但我看不到从 StreamBuilder 中为其赋予初始值的方法。我错过了什么吗?
TextEditingController nameController = TextEditingController();
....
controller: nameController,
【问题讨论】: