Flutter - 'showSnackBar' 已弃用 - 如何更新?
Flutter - 'showSnackBar' is deprecated - how to update?
我的main.dart中有一些过时的部分,我想更新它们,但需要一点帮助,因为我的知识显然不够,希望有人能帮助我:-)
这部分快餐店已经过时了,正如您在消息中看到的那样。
'showSnackBar' is deprecated and shouldn't be used. Use
ScaffoldMessenger.showSnackBar. This feature was deprecated after
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),
));
我在论坛上找到了这个 therad,但它并没有真正帮助我......
'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),
),
);
您可以在您的应用中使用 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);
对我来说,您需要用 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(上下文).hideCurrentSnackBar()
ScaffoldMessenger.of(上下文).showSnackbar(...)
而不是
Scaffold.of(上下文).hideCurrentSnackBar()
Scaffold.of(上下文).showSnackbar(...)
我的main.dart中有一些过时的部分,我想更新它们,但需要一点帮助,因为我的知识显然不够,希望有人能帮助我:-)
这部分快餐店已经过时了,正如您在消息中看到的那样。
'showSnackBar' is deprecated and shouldn't be used. Use ScaffoldMessenger.showSnackBar. This feature was deprecated after 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),
));
我在论坛上找到了这个 therad,但它并没有真正帮助我...... '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),
),
);
您可以在您的应用中使用 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);
对我来说,您需要用 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(上下文).hideCurrentSnackBar() ScaffoldMessenger.of(上下文).showSnackbar(...) 而不是
Scaffold.of(上下文).hideCurrentSnackBar() Scaffold.of(上下文).showSnackbar(...)