我在将变量传递回称为“ sub”类的“ super”类时遇到问题。
我体内有一个自定义类:
body: AppWithNotification(
notification: Notifiche(),
notificationHeight: this.altezza,
backgroundOpacity: this.opacita,
)
然后,我有了应用程序的“ bottomNavigationBar”。 但是为了使我的应用程序更简洁,我将代码移到了另一个类中(在另一个文件中,所以我的调用是:
bottomNavigationBar: BarraSotto();
在BarraSotto中,我有一个按钮。 所以我的问题是:如何通过BarraSotto类中的按钮调用setState来更改Homepage类中的this.altezza和this.opacita?
如果我全部编写内联,也许没关系,我希望我的所有页面都包含相同的bottomNavigationBar,所以我需要另一个文件中的类以供重复使用...
谢谢。
答案 0 :(得分:0)
好的,我找到了解决方法。
您必须在将要执行setState的母类中创建一个回调函数。
然后,在子类中,将创建一个具有函数param的构造函数,并将回调传递给该函数。
在BarraSotto类中:
final Function showNotifiche;
BarraSotto(this.showNotifiche);
这里是家庭中的回调:
showNotifiche()
{
setState(() {
this.altezza = 300;
this.opacita = .5;
});
}
以及如何通过它:
bottomNavigationBar: BarraSotto(() => showNotifiche())