【问题标题】:NoSuchMethodError: The method 'showSnackBar' was called on nullNoSuchMethodError:在 null 上调用了方法“showSnackBar”
【发布时间】:2020-09-11 08:34:10
【问题描述】:

我试图在用户按下“添加到购物车”按钮后显示一条小吃店消息,但出现以下错误:

[VERBOSE-2:ui_dart_state.cc(166)] 未处理的异常:NoSuchMethodError:方法 'showSnackBar' 在 null 上被调用。

接收者:空

尝试调用:showSnackBar('SnackBar'的实例)

这是我的代码:

class ProductDetail extends StatefulWidget {
  final Product product;
  ProductDetail(this.product);
  @override
  _ProductDetailState createState() => _ProductDetailState();
}

class _ProductDetailState extends State<ProductDetail> {
  final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>();
  CartService _cartService = CartService();

  _addToCart(BuildContext context, Product product) async {
    var result = await _cartService.addToCart(product);
    if (result > 0) {
      print(result);
      _showSnackMessage(Text(
        'Item added to cart successfully!',
        style: TextStyle(color: Colors.green),
      ));
    } else {
      _showSnackMessage(Text(
        'Failed to add to cart!',
        style: TextStyle(color: Colors.red),
      ));
    }
  }

  _showSnackMessage(message) {
    var snackBar = SnackBar(
      content: message,
    );
    _scaffoldKey.currentState.showSnackBar(snackBar);
  }

任何人都可以用你的专业知识帮助我吗?

【问题讨论】:

  • 你已经得到了答案,但是如果你想展示一个更漂亮、更可定制的快餐栏,并且不用担心脚手架上下文,你可以使用这个package
  • 嘿@hiwajalal 我真的很喜欢那个包!谢谢分享!

标签: flutter snackbar


【解决方案1】:

您必须将_scaffoldKey 添加到您的Scaffold 小部件中:

Scaffold(key:_scaffoldKey,...)

如果您不提供脚手架小部件的密钥,这将为空。

【讨论】:

  • Good Catch Adnan
猜你喜欢
  • 2020-05-23
  • 1970-01-01
  • 2021-11-30
  • 2021-03-11
  • 2021-09-29
  • 2021-06-18
  • 2019-12-23
  • 2020-11-20
  • 2021-11-15
相关资源
最近更新 更多