我想创建一个带有标签的应用程序以获取用户输入。问题是,不同的选项卡获得不同的输入,但是我必须收集数据库的输入。我的主意是,主要的Scaffhold会收集所有Tabs的输入并将其写入数据库中!我的问题是,我不知道将数据从选项卡(其他文件中的statefullWidget)发送到父类(Scaffold)还是从那里运行函数!
请帮助我,抱歉我的英语不好!
乔纳斯
答案 0 :(得分:1)
您可以传递一个Function
,随时可以调用它。
MamaBear班
...
class _MamaBear extends State<MamaBear> {
void hungryBear(String babyBear) {
print("$babyBear is hungry");
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Column(children: <Widget>[
BabyBear(
"Mark",
(babyBear) {
hungryBear(babyBear);
},
)])));}
BabyBear班
class BabyBear extends StatefulWidget {
final String babyBearName;
final Function onBearAction;
BabyBear(this.babyBearName, this.onBearAction);
@override
_BabyBear createState() => _BabyBear();
}
class _BabyBear extends State<BabyBear> {
@override
Widget build(BuildContext context) {
return Card(
child: RaisedButton(
child: Text("Mama I'm hungry"),
onPressed: () {
widget.onBearAction(widget.babyBearName);
}),
);
}
}