Flutter update data

    void updateProduct(Product product ,String  name, int quantity,String price) {
     _firestore.document(product.date).updateData({
      'name' : name,
      'quantity' :quantity,
      'price' : price,
    });
  }

страница с деталями

 class ProductDetails extends StatefulWidget {
  final Product product;
  ProductDetails(this.product);
  @override
  _ProductDetailsState createState() => _ProductDetailsState();
}

class _ProductDetailsState extends State<ProductDetails> {
  final _formProductDetails = GlobalKey<FormState>();

  String name;
  String quantity;
  String price;

  @override
  Widget build(BuildContext context) {
    return Dialog(
      child: Container(
        color: Colors.grey,
        width: 500,
        height: 500,
        child: Form(
          key: _formProductDetails,
          child: Column(
            children: <Widget>[
              Row(
                crossAxisAlignment: CrossAxisAlignment.center,
                children: <Widget>[
                  Image.network(
                    widget.product.image,
                    fit: BoxFit.cover,
                  ),
                ],
              ),
              TextFormField(
                initialValue: widget.product.name,
                validator: (val) => val.isEmpty ? '' : null,
                onChanged: (val) =>
                    setState(() => name = val),
              ),
              TextFormField(
                initialValue: widget.product.quantity.toString(),
                validator: (val) => val.isEmpty ? '' : null,
                onChanged: (val) =>
                    setState(() => quantity = val),
              ),
              TextFormField(
                initialValue: widget.product.price,
                validator: (val) => val.isEmpty ? '' : null,
                onChanged: (val) =>
                    setState(() => price = val),
              ),
              RaisedButton(
                onPressed: () async {
                  if (_formProductDetails.currentState.validate()) {
                    ProductService().updateProduct(
                      widget.product,
                      name,
                      int.parse(quantity),
                      price,
                    );
                  }
                },
                child: Text('save'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

Ситуация такая что, при обновлении данных, обновляется значение только в том случае если меняю значение quantity. То есть если отдельно поменять название или цену, значение не изменяется и не обновляется. Пытаюсь сделать так чтоб можно было изменять отдельно любое значение.


Ответы (0 шт):