我遇到这样的错误
渲染库捕获异常Exception RenderFlex在右侧溢出了99889像素。 相关的引起错误的小部件是 GridTileBar
这是我的代码
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../screens/product_detail_screen.dart';
import '../providers/products.dart';
import '../providers/cart.dart';
class ProductItem extends StatelessWidget {
// final String id;
// final String title;
// final String imageUrl;
// ProductItem(this.id, this.title, this.imageUrl);
@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(
child: GestureDetector(
onTap: () {
Navigator.of(context).pushNamed(
ProductDetailScreen.routeName,
arguments: product.id,
);
},
child: Image.network(
product.imageUrl,
fit: BoxFit.cover,
),
),
footer: GridTileBar(
backgroundColor: Colors.black87,
leading: Consumer<Product>(
builder: (ctx, product, _) => IconButton(
icon: Icon(
product.isFavorite ? Icons.favorite : Icons.favorite_border,
),
color: Theme.of(context).accentColor,
onPressed: () {
product.toggleFavoritestatus();
},
),
),
title: Text(
product.title,
textAlign: TextAlign.center,
),
trailing: IconButton(
icon: Icon(
Icons.shopping_cart,
),
onPressed: () {
cart.addItem(
product.id,
product.title,
product.price,
);
Scaffold.of(context).hideCurrentSnackBar();
Scaffold.of(context).showSnackBar(
SnackBar(
content: Text(
'Added item to cart!',
),
duration: Duration(seconds: 2),
action: SnackBarAction(
label: 'UNDO',
onPressed: () {
cart.removeSingleItem(product.id);
},
),
),
);
},
color: Theme.of(context).accentColor,
),
),
),
);
}
}
请帮助!
同样出现了一个错误
小部件库caught捕获到异常 断言失败:布尔表达式不能为null 相关的引起错误的小部件是 消费者
答案 0 :(得分:0)
查看代码片段,gridtilebar 无法呈现小部件,因为下面写有条件逻辑。
请检查以下条件(product.isFavorite)是否返回 null 或具有有效的布尔值。
product.isFavorite ? Icons.favorite : Icons.favorite_border,