Dart 从颤振文本字段读取值

Dart 从颤振文本字段读取值,dart,flutter,Dart,Flutter,我有一个带有文本字段的小部件,我正在从StreamBuilder初始化它,试图使用bloc模式。一个联系人模型正在通过流传入。这将用于最初填充文本字段。我的问题是在用户更新文本字段,然后按下保存按钮后读取值。如何从文本字段读取值。我已经包括了一个简单的例子,说明我正在尝试做什么 void getTextValues(){ //??? } @凌驾 小部件构建(构建上下文){ 返回流生成器( 流:bloc.getContact, 生成器:(上下文,联系人){ 返回列( 儿童:[ 文本字段( 控制器:

我有一个带有文本字段的小部件,我正在从
StreamBuilder
初始化它,试图使用bloc模式。一个联系人模型正在通过流传入。这将用于最初填充文本字段。我的问题是在用户更新文本字段,然后按下保存按钮后读取值。如何从文本字段读取值。我已经包括了一个简单的例子,说明我正在尝试做什么

void getTextValues(){
//???
}
@凌驾
小部件构建(构建上下文){
返回流生成器(
流:bloc.getContact,
生成器:(上下文,联系人){
返回列(
儿童:[
文本字段(
控制器:文本编辑控制器(文本:contact.data.name),
),
新升起的按钮(
填充:常数边集全部(8.0),
textColor:Colors.white,
颜色:颜色,蓝色,
onPressed:getTextValues,
子项:新文本(“保存”),
),
],
);
},
);
}
我想我可以声明一个TextEditingController并将其分配给controller属性,但我看不到从StreamBuilder中为其提供初始值的方法。我是不是遗漏了什么

TextEditingController-nameController=TextEditingController();
....
控制器:名称控制器,
我想我可以声明一个TextEditingController并将其分配给 控制器属性,但我看不到一种方法来给它一个初始值 来自StreamBuilder的值

有办法。将生成器代码更改为:

builder: (context, contact) {
    nameController.value = TextEditingValue(text: contact.data.name);
        return Column(
          children: <Widget>[
            TextField(
              controller: nameController,
            ),
            new RaisedButton(
              padding: const EdgeInsets.all(8.0),
              textColor: Colors.white,
              color: Colors.blue,
              onPressed: getTextValues,
              child: new Text("Save"),
            ),
          ],
        );
      },
builder:(上下文,联系人){
nameController.value=TextEditingValue(文本:contact.data.name);
返回列(
儿童:[
文本字段(
控制器:名称控制器,
),
新升起的按钮(
填充:常数边集全部(8.0),
textColor:Colors.white,
颜色:颜色,蓝色,
onPressed:getTextValues,
子项:新文本(“保存”),
),
],
);
},

要指定
文本编辑控制器
默认值,请使用

TextEditingController _controller = TextEditingController(text: "Default value");
要从控制器中检索值,可以使用

_controller.value

啊!!太简单了!我不知道为什么我没有想到我可以把代码放在返回的上面。谢谢@Ryosukez即使是我们中最好的人也会这样:)