Flutter:将数据从TabBarView(StatefullWidgets)发送回主支架

时间:2018-06-24 14:39:53

标签: dart flutter

我想创建一个带有标签的应用程序以获取用户输入。问题是,不同的选项卡获得不同的输入,但是我必须收集数据库的输入。我的主意是,主要的Scaffhold会收集所有Tabs的输入并将其写入数据库中!我的问题是,我不知道将数据从选项卡(其他文件中的statefullWidget)发送到父类(Scaffold)还是从那里运行函数!

请帮助我,抱歉我的英语不好!

乔纳斯

1 个答案:

答案 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);
          }),
    );
  }

}