在产品显示页面中的选项卡上时,如何将商品添加到购物车页面?

时间:2020-09-27 11:06:00

标签: firebase flutter

这是我的产品页面,显示差异。屏幕上的项目,但我想添加单击的项目以将其添加到我的购物车中。

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:ec/cart.dart';
import 'package:flutter/material.dart';

class ProductItem extends StatefulWidget {
  final String title;
  final String price;
  final String imageurl;
  final String shortDesc;
  final String id;
  final DocumentSnapshot documentSnapshot;
  ProductItem({
    @required this.imageurl,
    @required this.documentSnapshot,
    @required this.id,
    @required this.shortDesc,
    @required this.title,
    @required this.price,
  });
  
  @override
  _ProductItemState createState() => _ProductItemState();
}

class _ProductItemState extends State<ProductItem> {

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () =>   Navigator.push(context, MaterialPageRoute(builder: (context)=> MyCart(datasnap: widget.documentSnapshot,))),
          child: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Container(
          width: double.infinity,
          child: Row(
            children: <Widget>[
              Container(
                height: 100,
                width: 150,
                child: ClipRRect(
                  child: Image.network(
                    widget.imageurl,
                    fit: BoxFit.cover,
                  ),
                ),
              ),
              Padding(
                padding: const EdgeInsets.only(left: 10.0),
                child: Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Column(
                      children: <Widget>[
                         Container(
                               height: 50,
                             //  padding: EdgeInsets.all(4.0),
                               color: Colors.blue,
                                child: Column(
                                  children: <Widget>[
                                       Text(widget.title,
                                       style: TextStyle(color: Colors.black, fontSize: 20)),
                                       Text(widget.shortDesc,
                                       style: TextStyle(color: Colors.black, fontSize: 10)),
                                  ],
                                ),
                              ),
                        
                        Row(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                             Container(
                               height: 50,
                               padding: EdgeInsets.all(4.0),
                               color: Colors.blue,
                                child: Column(
                                  children: <Widget>[
                                       Text("50%",
                                       style: TextStyle(color: Colors.black, fontSize: 20)),
                                       Text("off",
                                       style: TextStyle(color: Colors.black, fontSize: 15)),
                                  ],
                                ),
                              ),
                             Container(
                               height: 50,
                               padding: EdgeInsets.all(4.0),
                              // color: Colors.deepOrange,
                               child: Column(
                                 mainAxisAlignment: MainAxisAlignment.center,
                                 crossAxisAlignment: CrossAxisAlignment.start,
                               children: <Widget>[
                                       Text("Original- ${widget.price}",
                                       style: TextStyle(color: Colors.black, fontSize: 12)),
                                       Text("new price - ${widget.price}",
                                       style: TextStyle(color: Colors.black, fontSize: 12)),
                               ],
                             ),
                             ),
                           
                          ],
                        ),
                     
                      ],
                      crossAxisAlignment: CrossAxisAlignment.start,
                    ),
                  ],
                ),
              ),
            ],
          ),
          padding: EdgeInsets.all(10),
          decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(10),
            color: Colors.white,
          ),
        ),
        
      ),
    );
  }

这是我的productitem类文件。在此页面上,我想在项目上添加选项卡时添加项目,这通过下面的手感检测器类中存在的ontap属性起作用。

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:ec/loginpage.dart';
import 'package:ec/upload.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';

class MyCart extends StatefulWidget {
   final DocumentSnapshot datasnap;
   MyCart({Key key, @required this.datasnap}) : super(key: key);
  @override
  _MyCartState createState() => _MyCartState();
  
}

class _MyCartState extends State<MyCart> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: Text(widget.datasnap.get('title')),
      ),
    );
  }
}

}

在下面的购物车页面中,我只是尝试获取添加到购物车中的商品的标题,但这给了我error.I想要我的购物车页面的一些购物车代码,以便当我在产品页面中选择商品时添加它并显示在购物车页面中。请帮助我

{{1}}

0 个答案:

没有答案