【问题标题】:Flutter globals variables are not refreshed when hot reload热重载时不刷新 Flutter 全局变量
【发布时间】:2020-06-20 16:57:56
【问题描述】:

我从颤振开始,我想了解更多。为了让我的生活更轻松,我在启动应用程序时声明了全局变量。

errorMessage 变量在启动时为空。

但是如果它因为在执行中发现错误而被填满并向我显示消息,当我热重新加载我的应用程序时它不会返回 null 并保留阻止我的错误消息。


class HomeController extends StatefulWidget {
  HomeController({Key key, this.title}) : super(key: key);
  final String title;

  @override
  _HomeControllerState createState() => _HomeControllerState();
}

class _HomeControllerState extends State<HomeController> {

  String errorMessage; // => My exemple of global variable
  bool debugFunctionStart = true;

  final _formKey = GlobalKey<FormState>();

  @override
  void initState() {
    super.initState();
  }
...

我的应用程序中的一个函数示例:

functionChoose(List item,String key, int value){
    Map<String, dynamic> result;
    if(item.length > 0){
      List selectedInList = item.where((c) => c[key] == value).toList();
      result = selectedInList.first;
    }else{
      errorMessage = "ERROR ! not works ...";// => found an error
      print(errorMessage);
    }
    return result;
  }

怎么做?

【问题讨论】:

标签: flutter dart


【解决方案1】:

热重载保持状态是预期的行为

您可以在状态reasseble()方法中将errorMessage设置为null

在调试期间重新组装应用程序时调用,例如 热重载期间的示例。

毕竟我会推荐你​​阅读statemanagement

【讨论】:

    【解决方案2】:

    这可能是因为热重载保存了当前状态,如果你在 vscode 上,只需单击绿色圆形箭头重新启动应用程序,这应该可以解决它。

    【讨论】:

    • 感谢您的回复。可以肯定的是,没有什么可做的。
    猜你喜欢
    • 2021-12-01
    • 2014-01-24
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 2018-03-14
    • 2020-04-04
    • 1970-01-01
    相关资源
    最近更新 更多