когда я снова вошел в экран или даже нажал двойную переменную, накапливающуюся в каждом - PullRequest
0 голосов
/ 03 мая 2020
  • У меня есть экран заказа и предварительный просмотр в нем цены товаров, вначале это точная цена, но когда я нажал назад или попытался снова выбрать этот экран, цена снова накапливалась

например: если цена = 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;
  }
...