[英]FutureBuilder widget not returnig the Pages I want - Flutter Firebase
[英]I want to convert a Widget into a StatelessWidget
我有一个Widget
来使用存储在Firestore
中的数据构建Cards
我想将此Widget
转换为StatelessWidget
以使用Card
的按钮。
这是小部件
Widget buildProducts(Products products) => Card(
clipBehavior: Clip.antiAlias,
child: SizedBox(
width: 300,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Image(image: NetworkImage(products.imageUrl)),
ListTile(
title: Text(products.name),
subtitle: Text('Precio: ${products.price} \$'),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 8, 8),
child: ElevatedButton(
style: ButtonStyle(
foregroundColor: MaterialStateProperty.all<Color>(
const Color(0xFFFFFFFF),
),
backgroundColor: MaterialStateProperty.all<Color>(
const Color(0xFF6750A4),
),
),
onPressed: () => showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) => AlertDialog(
title: const Text('Subir Producto'),
content: const Text(
'El producto ha añadido a la base de datos correctamente'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('OK'))
],
),
),
child: const Text(
'Añadir al Carro',
),
),
),
],
),
],
),
),
);
创建一个StatelessWidget
并通过构造函数传递Products
并将卡片粘贴到返回部分。
class ProductWidet extends StatelessWidget {
final Products products;
const ProductWidet({required this.products,Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Card(
clipBehavior: Clip.antiAlias,
child: SizedBox(
width: 300,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Image(image: NetworkImage(products.imageUrl)),
ListTile(
title: Text(products.name),
subtitle: Text('Precio: ${products.price} \$'),
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Padding(
padding: const EdgeInsets.fromLTRB(0, 0, 8, 8),
child: ElevatedButton(
style: ButtonStyle(
foregroundColor: MaterialStateProperty.all<Color>(
const Color(0xFFFFFFFF),
),
backgroundColor: MaterialStateProperty.all<Color>(
const Color(0xFF6750A4),
),
),
onPressed: () => showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) => AlertDialog(
title: const Text('Subir Producto'),
content: const Text(
'El producto ha añadido a la base de datos correctamente'),
actions: <Widget>[
TextButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('OK'))
],
),
),
child: const Text(
'Añadir al Carro',
),
),
),
],
),
],
),
),
);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.