- У меня есть экран заказа и предварительный просмотр в нем цены товаров, вначале это точная цена, но когда я нажал назад или попытался снова выбрать этот экран, цена снова накапливалась
например: если цена = 40, когда я нажал назад и проверил его снова, он становится 120
, это код экрана заказа:
Widget build(BuildContext context) {
final mediaQuery = MediaQuery.of(context).size.height;
final orderId = ModalRoute.of(context).settings.arguments as int;
**final orderProvider = Provider.of<OrderProvider>(context, listen: false);**
final order = orderProvider.findOrderById(orderId);
AppBar appBar = AppBar(title: Text(order.restaurantName),);
**double _totalPrice =orderProvider.totalItemsPrice(order.orderItems);**
return Scaffold(
.
.
.
child: Column(
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text('Price'),
**Text('${_totalPrice}L.E'),**
Text('Total: ${order.price}L.E')
],
),
.
.
.
и это класс провайдера, который содержит метод расчета цены товаров
double totalItemsPrice (List<OrderItem> orders){
for(int i=0; i<orders.length; i++){
totalItemPrice += orders[i].price*orders[i].count;
}
return totalItemPrice;
}