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'),
),
],
),
);
}