如何从其他文件Dart调用setState

时间:2019-05-10 03:29:38

标签: android ios dart flutter

如何从Category.dart文件调用setState()

在main.dart中:

body: Column(
      children: <Widget>[
        slideShow(),
        category() // from Category.dart
      ],
    )

在Category.dart中:

category() {
  return _girdView();
}

_girdView() {
  return Center();
}

3 个答案:

答案 0 :(得分:0)

您可以参考以下答案:

Flutter setState to another class?

老实说,这不仅仅是解决方案,更是一种hack,如果您的项目相对较小,那将是setState的局限,那很好,但是否则,您应该使用ScopedModels或BLocs或Streams

答案 1 :(得分:0)

setState()仅针对同一类被调用,当您调用setState()时,窗口小部件将被重建。如果要调用父级的setState,则可以使用StateUp从子类中调用回父类方法。 如果要调用子类setState(),则可以使用GlobalKey,然后传递给子类,然后调用子方法,在此方法下,您可以定义setState(); 对于更复杂的状态管理,可以使用ScopeModelInheritWidgetReduxBlocStreamFlutter State Management

答案 2 :(得分:0)

我建议您使用提供商,因为Google团队最近才建议使用它作为最佳方法。无论项目有多大,提供程序都将确保您保持代码干净。就像ScopedModel一样,但是在类固醇上。

Flutter团队的Flutter I / O演示:https://www.youtube.com/watch?v=d_m5csmrf7I

包装:https://pub.dev/packages/provider#-readme-tab-