dart copywith
//copyWith allows us to copy a T and pass in arguments that overwrite
//settable values.
class _HomePageState extends State<HomePage> {
List<Product> products = [];
@override
void initState() {
super.initState();
Product sixSeaterDiningTableBrown = Product(
id: "0",
name: "6 Seater Dining Table",
color: Colors.brown,
);
Product sixSeaterDiningTableBlack =
sixSeaterDiningTableBrown.copyWith(color: Colors.black, id: "1");
products.add(sixSeaterDiningTableBrown);
products.add(sixSeaterDiningTableBlack);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Hello, copyWith!"),
),
body: ListView(
children: products
.map((Product product) => ListTile(
trailing: Container(
width: 14,
height: 14,
color: product.color,
),
title: Text(product.name),
subtitle: Text(product.id),
))
.toList()),
);
}
}