如何解决Flutter - 'showSnackBar' 已弃用 - 如何更新?
我的 main.dart 中有一些过时的部分,我想更新它们,但需要一点帮助,因为我的知识显然不够,希望有人能帮助我 :-)
正如您在消息中看到的那样,这部分小吃店已过时。
'showSnackBar' 已弃用,不应使用。采用 ScaffoldMessenger.showSnackBar。此功能在之后被弃用 v1.23.0-14.0.pre...
这是我的main.dart的关联代码
Navigator.of(context,rootNavigator: true).pop('dialog');
Magazin.scaffoldKey.currentState!.showSnackBar(SnackBar(
content: Text('BEIM LADEN DER POST-DATEN IST EIN FEHLER AUfgetRETEN!'),duration: Duration(seconds: 5),));
我在论坛上找到了这个疗法,但它并没有真正帮助我...... 'showSnackBar' is deprecated and shouldn't be used
解决方法
您可以使用此代码。如果您的其余代码当前可以工作,此代码没有任何问题
Navigator.of(context,rootNavigator: true).pop('dialog');
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content:Text('BEIM LADEN DER POST-DATEN IST EIN FEHLER AUFGETRETEN!'),duration: Duration(seconds: 2),),);
,
对我来说,你需要用 ScaffordMessager(...) 包裹你的旧 Scaffold(...) 并不明显。一旦我这样做了,上面的迁移就很容易了。
新的覆盖构建:
@override
Widget build(BuildContext context) {
return ScaffoldMessenger(
key: scaffoldMessengerKey,child: Scaffold(
appBar: AppBar(
旧片段:
@override
Widget build(BuildContext context) {
return Scaffold(
key: scaffoldKey,appBar: AppBar(
希望这对下一个人有所帮助!
,如果您使用 Flutter 2 或更高版本,您可能会看到有关 hideCurrentSnackBar() 和 showSnackbar() 方法的弃用警告。
您可以使用以下方法摆脱它们:
ScaffoldMessenger.of(context).hideCurrentSnackBar() ScaffoldMessenger.of(context).showSnackbar(...) 而不是
Scaffold.of(context).hideCurrentSnackBar() Scaffold.of(context).showSnackbar(...)
,您可以在您的应用中使用 Flushbar 实现此功能:flushbar
FlushbarHelper.createError(
message: failure.map(
cancelledByUser: (_) => 'Cancelled',serverError: (_) => 'Server error',emailAlreadyInUse: (_) => 'Email already in use',invalidEmailAndPasswordCombination: (_) =>
'Invalid email and password combination',).show(context);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。