Android 其中是回调函数';谁的身体在颤抖?
发件人: 在下面的代码中,我可以看到回调Android 其中是回调函数';谁的身体在颤抖?,android,flutter,dart,Android,Flutter,Dart,发件人: 在下面的代码中,我可以看到回调StringValue的声明。我可以看到它被称为 我找不到它的尸体在哪里。这意味着,当我们编写一个函数来接收一些参数时,我们用这些参数做一些事情,然后返回一些东西 这里的回调在哪里发生的 import 'package:flutter/material.dart'; typedef StringValue = String Function(String); // ignore: must_be_immutable class EditingPage
StringValue
的声明。我可以看到它被称为
我找不到它的尸体在哪里。这意味着,当我们编写一个函数来接收一些参数时,我们用这些参数做一些事情,然后返回一些东西
这里的回调在哪里发生的
import 'package:flutter/material.dart';
typedef StringValue = String Function(String);
// ignore: must_be_immutable
class EditingPage extends StatefulWidget {
_EditingPageState createState() => _EditingPageState();
StringValue callback;
EditingPage(this.callback);
}
class _EditingPageState extends State<EditingPage> {
TextEditingController textController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Widget Communication"),
backgroundColor: Colors.red,
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
height: 50,
margin: EdgeInsets.all(8),
child: TextFormField(
onTap: () {},
controller: textController,
maxLines: 1,
maxLength: 20,
decoration: InputDecoration(
hintText: "Enter Some Text Here",
contentPadding: EdgeInsets.all(8),
),
),
),
RaisedButton(
color: Colors.red,
child: Text("Submit"),
onPressed: () {
widget.callback(textController.text);
Navigator.pop(context);
}),
],
),
);
}
}
导入“包装:颤振/材料.省道”;
typedef StringValue=字符串函数(字符串);
//忽略:必须是不可变的
类EditingPage扩展StatefulWidget{
_EditingPageState createState()=>U EditingPageState();
字符串值回调;
编辑页面(this.callback);
}
类_EditingPageState扩展状态{
TextEditingController textController=TextEditingController();
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“小部件通信”),
背景颜色:Colors.red,
),
正文:专栏(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
容器(
身高:50,
保证金:全部(8),
子项:TextFormField(
onTap:(){},
控制器:textController,
maxLines:1,
最大长度:20,
装饰:输入装饰(
hintText:“在此输入一些文本”,
contentPadding:EdgeInsets.all(8),
),
),
),
升起的按钮(
颜色:颜色,红色,
儿童:文本(“提交”),
已按下:(){
回调(textController.text);
Navigator.pop(上下文);
}),
],
),
);
}
}
您不清楚的是typedef
的用法吗?它不声明函数,但定义别名。事实上,在下一版本的Dart Sdk中,还可以为函数以外的类型定义别名,例如typedef MyStringList=List
在您报告的代码中,callback
是一个能够存储函数的字段(准确地说,是带有字符串参数并返回字符串的函数),该字段由构造函数参数设置
因此,当您实例化EditingPage时,必须向其传递类型为字符串函数(String)
(别名StringValue)的函数,例如:
var myCallback=(字符串值){
返回saveInMyDatabaseAndReturnId(值);
};
runApp(编辑页面(myCallback));
您不清楚的是typedef
的用法吗?它不声明函数,但定义别名。事实上,在下一版本的Dart Sdk中,还可以为函数以外的类型定义别名,例如typedef MyStringList=List
在您报告的代码中,callback
是一个能够存储函数的字段(准确地说,是带有字符串参数并返回字符串的函数),该字段由构造函数参数设置
因此,当您实例化EditingPage时,必须向其传递类型为字符串函数(String)
(别名StringValue)的函数,例如:
var myCallback=(字符串值){
返回saveInMyDatabaseAndReturnId(值);
};
runApp(编辑页面(myCallback));
这是否回答了您的问题?检查使用编辑页面的位置(初始化)。此处。文章中的图片。这是否回答了你的问题?检查使用编辑页面的位置(初始化)。此处。文章中的一张图片。