当我单击Add to Cart时,在调试和运行代码后出现错误. 价格在名为Product.Dart的文件中定义,如最终的双倍价格,并在Products.Dart中定义为4种产品,我有单独的定价49.99,59.99,...

enter image description here

以下是我的代码:

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

请帮帮我,让我知道如何修理它. 先谢谢你

推荐答案

我认为您错误地写错了Double而不是double更改这行代码

cart.addItem(product.id, product.price as Double, product.title);

对此

cart.addItem(product.id, product.price as double, product.title);

Flutter相关问答推荐

Flutter bloc -如何使用BlocBuilder?

在Flutter 中压缩图片返回空

如何在Firebase项目中更改包名称和包ID

在Flutter 中更改扩展瓷砖的高度

如何确定Flutter 中的文本 colored颜色 ?

如何在Flutter 中创造以下效果

dart /长笛中的返回早期模式和拆分方法

如何在 Flutter 中创建具有渐变背景色的自定义 Snackbar?

SliverAppbar 呈蓝色

Flutter:我的应用程序是否需要包含退款购买?

Flutter Riverpod 对提供者状态的变化做出react

用户文档 ID 与 Firestore 中的用户 ID 相同

有没有办法在没有收缩包装的情况下在列中使用 ListView.Builder?

如何删除或隐藏覆盖

Flutter可滚动定位列表支持rtl方向吗?

如何修复 ICU Lexing 错误:Flutter 中的意外字符

Flutter 动画页面计数器文本

如何限制用户每 24 小时执行的操作数?

将容器扩展到安全区域 - Flutter

小部件库捕获的 Flutter 异常