Flutter - 'showSnackBar'已弃用-如何更新?

9jyewag0  于 2023-05-01  发布在  Flutter
关注(0)|答案(5)|浏览(164)

我的主要部分有些过时的部分。 dart ,我想更新他们,但需要一点帮助,因为我的知识显然是不够的,希望有人能帮助我:-)
在这一部分,小吃店已经过时了,正如你在信息中所看到的。
“showSnackBar”已被弃用,不应使用。使用ScaffoldMessenger。显示SnackBar。此功能在v1之后被弃用。23.0-14.0.pre..
这是我的主代码。 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

v440hwme

v440hwme1#

你可以使用这个代码。如果代码其余部分当前可以正常工作,则此代码没有任何问题

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),
    ),
);
doinxwow

doinxwow2#

对我来说,很明显你需要把你的旧脚手架包起来。..)与ScaffordMessager(...)。只要我这样做了,迁移就很容易了。
新重写的生成:

@override
  Widget build(BuildContext context) {
    return ScaffoldMessenger(
      key: scaffoldMessengerKey,
      child: Scaffold(
      appBar: AppBar(

旧片段:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      key: scaffoldKey,
      appBar: AppBar(

希望这对下一个人有帮助!

ippsafx7

ippsafx73#

如果使用Flutter 2或更高版本,您可能会看到关于hideCurrentSnackBar()和showSnackbar()方法的弃用警告。
您可以使用以下命令摆脱它们:
脚手架信使。(context)。hideCurrentSnackBar()ScaffoldMessenger。(context)。showSnackbar(...)而不是
Scaffold.of(context).hideCurrentSnackBar()Scaffold。(context)。showSnackbar(...)

jhkqcmku

jhkqcmku4#

代替行

Magazin.scaffoldKey.currentState!.showSnackBar(SnackBar(

但这条线

ScaffoldMessenger.of(context).showSnackBar(SnackBar(
t1rydlwq

t1rydlwq5#

您可以在应用中使用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);

相关问题