当我单击Add to Cart时,在调试和运行代码后出现错误. 价格在名为Product.Dart的文件中定义,如最终的双倍价格,并在Products.Dart中定义为4种产品,我有单独的定价49.99,59.99,...
以下是我的代码:
import 'dart:ffi';
import 'package:flutter/material.dart';
import 'package:my_shop/providers/cart.dart';
import 'package:my_shop/providers/product.dart';
import 'package:my_shop/screens/product_detail_screen.dart';
import 'package:provider/provider.dart';
class ProductItem extends StatelessWidget {
@override
Widget build(BuildContext context) {
final product = Provider.of<Product>(context, listen: false);
final cart = Provider.of<Cart>(context, listen: false);
return ClipRRect(
borderRadius: BorderRadius.circular(10),
child: GridTile(
footer: GridTileBar(
title: Text(
product.title,
textAlign: TextAlign.center,
textScaler: const TextScaler.linear(2 / 3),
),
backgroundColor: Colors.black87,
leading: Consumer<Product>(
builder: (ctx, product, _) => IconButton(
icon: Icon(product.isFavorite
? Icons.favorite
: Icons.favorite_border),
color: Theme.of(context).colorScheme.secondary,
onPressed: () {
product.toggleFavoritestatus();
},
)),
trailing: IconButton(
icon: const Icon(Icons.shopping_cart),
color: Theme.of(context).colorScheme.secondary,
onPressed: () {
cart.addItem(
product.id, product.price as Double, product.title);
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text('The item added to your cart!'),
duration: Duration(seconds: 2),
action: SnackBarAction(label: 'UNDO', onPressed: () {}),
));
},
)),
child: GestureDetector(
onTap: () {
Navigator.of(context).pushNamed(
ProductDetailScreen.routeName,
arguments: product.id,
);
},
child: Image.network(
product.imageUrl,
fit: BoxFit.cover,
),
),
),
);
}
}
请帮帮我,让我知道如何修理它. 先谢谢你