这是我的产品页面,显示差异。屏幕上的项目,但我想添加单击的项目以将其添加到我的购物车中。
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}}