如何从Category.dart文件调用setState()
?
在main.dart中:
body: Column(
children: <Widget>[
slideShow(),
category() // from Category.dart
],
)
在Category.dart中:
category() {
return _girdView();
}
_girdView() {
return Center();
}
答案 0 :(得分:0)
您可以参考以下答案:
Flutter setState to another class?
老实说,这不仅仅是解决方案,更是一种hack,如果您的项目相对较小,那将是setState的局限,那很好,但是否则,您应该使用ScopedModels或BLocs或Streams
答案 1 :(得分:0)
setState()
仅针对同一类被调用,当您调用setState()时,窗口小部件将被重建。如果要调用父级的setState,则可以使用StateUp从子类中调用回父类方法。
如果要调用子类setState(),则可以使用GlobalKey,然后传递给子类,然后调用子方法,在此方法下,您可以定义setState()
;
对于更复杂的状态管理,可以使用ScopeModel
,InheritWidget
,Redux
,Bloc
或Stream
。
Flutter State Management
答案 2 :(得分:0)
我建议您使用提供商,因为Google团队最近才建议使用它作为最佳方法。无论项目有多大,提供程序都将确保您保持代码干净。就像ScopedModel一样,但是在类固醇上。
Flutter团队的Flutter I / O演示:https://www.youtube.com/watch?v=d_m5csmrf7I