Flutter:如何获取父窗口小部件变量?

时间:2020-03-03 07:50:54

标签: flutter inheritance

我使用下面的示例测试和学习如何从子窗口小部件调用父函数。 当您单击TestButton时,将调用countRefresh函数,并且变量count将增加1。 现在,每次单击按钮都会更改颜色(蓝色或红色)。

问题:说我希望颜色根据count变量周围的某些逻辑而变化,如何从{{1 }}小部件? 例如。如果count是三的倍数,则按钮应为红色,否则为蓝色。

我读到有关InheritedWidgets的信息,但似乎变量在InheritedWidgets中必须是final的(如果我未将final放在TestButton之前,则会收到“此类被标记为不可变的”消息错误)。 但是基于此示例,每次单击按钮时,我需要count进行更改。 InheritedWidgets的替代方法是什么?

int count = 0;

1 个答案:

答案 0 :(得分:1)

我希望颜色根据围绕count变量的某种逻辑进行更改,如何从TestButton小部件中访问count变量?例如。如果count是3的倍数,则按钮应为红色,否则为蓝色。

您需要将count传递给孩子,让孩子根据该值建立自己。

不要尝试访问父窗口小部件。在声明式编程中,您只能更新状态和重建树。

以下是有关Flutter中状态管理的精彩视频:https://www.youtube.com/watch?v=HrBiNHEqSYU