通过类传回变量

时间:2019-07-16 20:46:57

标签: flutter

我在将变量传递回称为“ sub”类的“ super”类时遇到问题。

我体内有一个自定义类:

body: AppWithNotification(
        notification: Notifiche(),
        notificationHeight: this.altezza,
        backgroundOpacity: this.opacita,
      )

然后,我有了应用程序的“ bottomNavigationBar”。 但是为了使我的应用程序更简洁,我将代码移到了另一个类中(在另一个文件中,所以我的调用是:

 bottomNavigationBar: BarraSotto();

在BarraSotto中,我有一个按钮。 所以我的问题是:如何通过BarraSotto类中的按钮调用setState来更改Homepage类中的this.altezza和this.opacita?

如果我全部编写内联,也许没关系,我希望我的所有页面都包含相同的bottomNavigationBar,所以我需要另一个文件中的类以供重复使用...

谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方法。

您必须在将要执行setState的母类中创建一个回调函数。

然后,在子类中,将创建一个具有函数param的构造函数,并将回调传递给该函数。

在BarraSotto类中:

final Function showNotifiche;

BarraSotto(this.showNotifiche);

这里是家庭中的回调:

showNotifiche()
{
  setState(() {
   this.altezza = 300;
   this.opacita = .5;
  });
}

以及如何通过它:

 bottomNavigationBar: BarraSotto(() => showNotifiche())