Flutter 为什么有时snackbar会失败
请帮助解释为什么有时我的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
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);
}
您可以保存脚手架的上下文,确保它存在于提供者中,以便在需要的地方传递它