我试图在用户按下“添加到购物车”按钮后显示小吃店消息,但是出现以下错误:
[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);
}
任何人都可以用您的专业知识来帮助我吗?
答案 0 :(得分:1)
您必须将_scaffoldKey
添加到Scaffold
小部件中,如下所示:
Scaffold(key:_scaffoldKey,...)
如果您不提供脚手架小部件的钥匙,则此字段为空。