Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 为什么有时snackbar会失败_Flutter_Dart_Snackbar - Fatal编程技术网

Flutter 为什么有时snackbar会失败

Flutter 为什么有时snackbar会失败,flutter,dart,snackbar,Flutter,Dart,Snackbar,请帮助解释为什么有时我的SnackBar显示错误。我不明白在什么情况下会出现这个问题。我还想指出,即使它显示了错误,但在应用程序本身中,它工作正常 这是我的密码: void showFailedSnackBar(String s) { SnackBar snackBar = SnackBar( content: Text(s), duration: Duration(seconds: 3), backgroundColor: Theme.of(cont

请帮助解释为什么有时我的SnackBar显示错误。我不明白在什么情况下会出现这个问题。我还想指出,即使它显示了错误,但在应用程序本身中,它工作正常

这是我的密码:

void showFailedSnackBar(String s) {
    SnackBar snackBar = SnackBar(
      content: Text(s),
      duration: Duration(seconds: 3),
      backgroundColor: Theme.of(context).primaryColor,
    );

    ScaffoldMessenger.of(context).showSnackBar(snackBar);
  }
以下是错误:

E/flutter ( 7879): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: This widget has been unmounted, so the State no longer has a context (and should be considered defunct).
E/flutter ( 7879): Consider canceling any active work during "dispose" or using the "mounted" getter to determine if the State is still active.

尝试检查小部件是否仍安装在以下三个位置:

void showFailedSnackBar(String s) {
    if (mounted) {
    SnackBar snackBar = SnackBar(
      content: Text(s),
      duration: Duration(seconds: 3),
      backgroundColor: Theme.of(context).primaryColor,
    );

    ScaffoldMessenger.of(context).showSnackBar(snackBar);
    }

  }

在函数showSnackbar中,除了字符串外,还可以传递BuildContext上下文变量,以便知道传递的上下文

    SnackBar snackBar = SnackBar(
      content: Text(s),
      duration: Duration(seconds: 3),
      backgroundColor: Theme.of(context).primaryColor,
    );

    ScaffoldMessenger.of(context).showSnackBar(snackBar);
  }
您可以保存脚手架的上下文,确保它存在于提供者中,以便在需要的地方传递它