//StatefulWidget
class ProductManager extends StatefulWidget {
final String startingProduct;
ProductManager({this.startingProduct = 'Sweets Tester'});
@override
State<StatefulWidget> createState() {
return _ProductManagerState();
}
}
class _ProductManagerState extends State<ProductManager> {
List<String> _products = [];
@override
void initState() {
super.initState();
_products.add(widget.startingProduct);
}
void _addProduct(String product) {
setState((){
_products.add(product);
});
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget> [
Container(
margin: EdgeInsets.all(10.0),
child: ProductControl(_addProduct),
),
Products(_products),
]
);
}
}
// ProductControl() in another file
class ProductControl extends StatelessWidget {
final Function addProduct;
ProductControl(this.addProduct);
@override
Widget build(BuildContext context) {
return RaisedButton(
onPressed: () {
addProduct('Sweets');
},
child: Text('Add Product'),
);
}
}