Flutter 以flatter的形式将数据从一个小部件传递到另一个小部件

Flutter 以flatter的形式将数据从一个小部件传递到另一个小部件,flutter,Flutter,在这里,他们在表单中使用了两个widget:TextFormWidget和ElevatedButton。他们说TextFormWidget的验证器接收用户输入的值 我想在用户按下提升按钮时打印该值 如何使ElevatedButton从TextFormWidget接收该值 @override Widget build(BuildContext context) { return Form( key: _formKey, child: Column(

在这里,他们在
表单中使用了两个widget
TextFormWidget
ElevatedButton
。他们说
TextFormWidget
的验证器接收用户输入的值

我想在用户按下提升按钮时打印该值

如何使
ElevatedButton
TextFormWidget
接收该值

@override
  Widget build(BuildContext context) 
  {
    return Form(
      key: _formKey,
      child: Column(
        children: <Widget>[
                   TextFormField(
                        // The validator receives the text that the user has entered.
                        validator: (value) 
                        {
                           if (value == null || value.isEmpty) 
                           {
                               return 'Please enter some text';
                           }
                           return null;
                        },
                    ),


                   ElevatedButton(
                       onPressed: () {
                          if (_formKey.currentState!.validate()) {
                             ....
                          }
                       },
                       child: Text('Submit'),
                   ),
              ],
      ),
    );
  }
@覆盖
小部件构建(构建上下文)
{
报税表(
键:_formKey,
子:列(
儿童:[
TextFormField(
//验证器接收用户输入的文本。
验证器:(值)
{
if(value==null | | value.isEmpty)
{
返回“请输入一些文本”;
}
返回null;
},
),
升降按钮(
已按下:(){
如果(_formKey.currentState!.validate()){
....
}
},
子项:文本('Submit'),
),
],
),
);
}
设置
TextFormField的属性并从中读取数据

按如下方式使用:

var controller=TextEditingController();
@凌驾
小部件构建(构建上下文)
{
报税表(
键:GlobalKey(),
子:列(
儿童:[
TextFormField(
控制器:控制器,
//验证器接收用户输入的文本。
验证器:(值)
{
if(value==null | | value.isEmpty)
{
返回“请输入一些文本”;
}
返回null;
},
),
升降按钮(
已按下:(){
如果(_formKey.currentState!.validate()){
字符串currentText=controller.text;
//…对当前文本执行某些操作
}
},
子项:文本('Submit'),
),
],
),
);
}
设置
TextFormField的属性并从中读取数据

按如下方式使用:

var controller=TextEditingController();
@凌驾
小部件构建(构建上下文)
{
报税表(
键:GlobalKey(),
子:列(
儿童:[
TextFormField(
控制器:控制器,
//验证器接收用户输入的文本。
验证器:(值)
{
if(value==null | | value.isEmpty)
{
返回“请输入一些文本”;
}
返回null;
},
),
升降按钮(
已按下:(){
如果(_formKey.currentState!.validate()){
字符串currentText=controller.text;
//…对当前文本执行某些操作
}
},
子项:文本('Submit'),
),
],
),
);
}

您可以使用
文本编辑控制器
并将其传递到
文本表单字段
控制器
参数中。从
控制器
可以获得
或用户提供的输入

示例

  // Controller
  final TextEditingController _controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Form(
      key: _formKey,
      child: Column(
        children: <Widget>[
          TextFormField(
            // Add the controller to the TextFormField
            controller: _controller,
            // The validator receives the text that the user has entered.
            validator: (value) {
              if (value == null || value.isEmpty) {
                return 'Please enter some text';
              }
              return null;
            },
          ),
          ElevatedButton(
            onPressed: () {
              // if (_formKey.currentState!.validate()) {
              //    ....
              // }

              // This gives the value
              final String value = _controller.text;
              print(value);
            },
            child: Text('Submit'),
          ),
        ],
      ),
    );
  }
//控制器
最终文本编辑控制器_控制器=文本编辑控制器();
@凌驾
小部件构建(构建上下文){
报税表(
键:_formKey,
子:列(
儿童:[
TextFormField(
//将控制器添加到TextFormField
控制器:_控制器,
//验证器接收用户输入的文本。
验证器:(值){
if(value==null | | value.isEmpty){
返回“请输入一些文本”;
}
返回null;
},
),
升降按钮(
已按下:(){
//如果(_formKey.currentState!.validate()){
//    ....
// }
//这就给出了价值
最终字符串值=_controller.text;
印刷品(价值);
},
子项:文本('Submit'),
),
],
),
);
}

您可以使用
文本编辑控制器
并将其传递到
文本表单字段
控制器
参数中。从
控制器
可以获得
或用户提供的输入

示例

  // Controller
  final TextEditingController _controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Form(
      key: _formKey,
      child: Column(
        children: <Widget>[
          TextFormField(
            // Add the controller to the TextFormField
            controller: _controller,
            // The validator receives the text that the user has entered.
            validator: (value) {
              if (value == null || value.isEmpty) {
                return 'Please enter some text';
              }
              return null;
            },
          ),
          ElevatedButton(
            onPressed: () {
              // if (_formKey.currentState!.validate()) {
              //    ....
              // }

              // This gives the value
              final String value = _controller.text;
              print(value);
            },
            child: Text('Submit'),
          ),
        ],
      ),
    );
  }
//控制器
最终文本编辑控制器_控制器=文本编辑控制器();
@凌驾
小部件构建(构建上下文){
报税表(
键:_formKey,
子:列(
儿童:[
TextFormField(
//将控制器添加到TextFormField
控制器:_控制器,
//验证器接收用户输入的文本。
验证器:(值){
if(value==null | | value.isEmpty){
返回“请输入一些文本”;
}
返回null;
},
),
升降按钮(
已按下:(){
//如果(_formKey.currentState!.validate()){
//    ....
// }
//这就给出了价值
最终字符串值=_controller.text;
印刷品(价值);
},
子项:文本('Submit'),
),
],
),
);
}