flutter - 如何在Flutter中获取setState.of(context)?

标签 flutter dart

我在大多数页面上都有一个带有ModalProgresHUD的应用程序。通常,我可以将功能(例如onTap)传递给该树中的任何小部件,以打开/关闭此微调器。

但是有时候这似乎很困难,我想在WidgetTree上的其他地方访问字段和/或setState。

一种选择似乎是将所有逻辑移到顶部的Widget中,并向下传递处理程序以访问这些方法,但这感觉很笨拙。

    class StatefullPage ..... {
       String _someImportantField;
       set someImportantField(String newValue) {
          _someImportantField = newValue;
          if(mounted) setState((){});
       }

       ...
    }

    class StateOfSomethingElse ... {
       Future doSomeWorkThatAffectsTheParent() async {
          await something.then((String newResult) {
          State.of(context).someImportantField = newResult;// HOW TO DO THIS
       }
       ...
    }

最佳答案

您使用哪种状态管理?看起来您只是在使用setState而已,这没有问题。但是要想想,我想最好使用诸如provider或redux之类的东西来处理应用程序的状态。

例如,使用提供程序,您可以在树的顶部提供一个值,并可以在小部件树的任何位置获取该值以执行逻辑。

关于flutter - 如何在Flutter中获取setState.of(context)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57730674/

相关文章:

Flutter TextButton 去除内边距和内边距

android - 如何在 Flutter 应用程序中打开 DropBox 下载的文件?

flutter initState() vs build()?

flutter - 我想为 ListView 中的每个特定项目创建动画

dart - 如何调用与Dart中的特定元素相关联的JS函数?

flutter - 小部件的 "const"是否只需要在有状态小部件中使用?

android - 运行 Flutter 项目后,我在 Android Studio 中导致垃圾键盘输入的原因

firebase - 创建 FirebaseAuth 实例时收到错误创建并使用电子邮件和密码登录

flutter - 如何在 Dart/Flutter 中获取整个月的天数?

dart - Flutter - 从 Assets 中读取文本文件