我正在创建这个购物应用程序,主页将图片和来自 firestore firebase 的一些数据显示为 gridView。这是本页的屏幕
一旦用户单击此页面中的一个图像,应用程序将向他显示另一个页面,其中包含有关带有英雄动画的产品的更多详细信息。 这是第二页 第二页是一个无状态的小部件,它需要一些参数
@override
Widget build(BuildContext context) {
return GridView.builder(
........
itemBuilder: (BuildContext context, int index){
String image = documents[index].data['image'].toString();
String ti = documents[index].data['title'].toString();
String prix = documents[index].data['price'].toString();
String desc = documents[index].data['description'].toString();
String categ = documents[index].data['category'].toString();
return new Material(
elevation: 5.0,
borderRadius:
new BorderRadius.all(new Radius.circular(15.0)),
child: new InkWell(
onTap: () {
Navigator.push(
context,
new MaterialPageRoute(
builder: (context) =>
new FullScreenImagePage(image,ti,prix,desc,categ)));
},
child: new Hero(
tag: image,
child: new Column(
children: <Widget>[
new Padding(padding: EdgeInsets.all(4.0)),
new FadeInImage(
image: new NetworkImage(image),
fit: BoxFit.cover,
placeholder: new AssetImage("assets/ic.png"),
),
new Text(ti, style: TextStyle(fontSize: 13.0, height: 1.0),),
new Text('prix: $prix MAD', style: TextStyle(fontSize: 9.0),),
],
),
),
),
);
然后我收到这个类的参数
class FullScreenImagePage extends StatelessWidget {
String imgPath ,title,price,desc,categ;
FullScreenImagePage(this.imgPath,this.title,this.price,this.desc,this.categ);
......
Padding(
padding: EdgeInsets.all(10.0),
child: Hero(
tag: imgPath,
child: Material(
elevation: 20.0,
shadowColor: Colors.black26,
child: Image(
image: NetworkImage(imgPath),
fit: BoxFit.cover,
),
),
),
),
我遇到的问题是我想将 FullScreenImagePage 的无状态小部件更改为有状态并保持相同的变量
