Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何在Flatter电子商务应用中向购物车添加产品项_Json_Flutter - Fatal编程技术网

Json 如何在Flatter电子商务应用中向购物车添加产品项

Json 如何在Flatter电子商务应用中向购物车添加产品项,json,flutter,Json,Flutter,我正在尝试将产品项目添加到购物车屏幕,但无法执行此操作。谁能帮帮我吗 单击“添加”按钮后,我想在购物车屏幕中显示该项目,并且在购物车中检查该项目之前,它将显示该项目已添加到购物车选项卡的通知。如果我理解您的意思,您正在尝试构建购物车应用程序。 请参考这个 您可以看到演示图片有一个“添加到购物车”按钮。并将所选产品附加到购物车列表中 StreamBuilder( //TODO:解决此问题 流:电子商务App.firestore .收款(“项目”) .where(“shortInfo”, isEqu

我正在尝试将产品项目添加到购物车屏幕,但无法执行此操作。谁能帮帮我吗


单击“添加”按钮后,我想在购物车屏幕中显示该项目,并且在购物车中检查该项目之前,它将显示该项目已添加到购物车选项卡的通知。

如果我理解您的意思,您正在尝试构建购物车应用程序。 请参考这个

您可以看到演示图片有一个“添加到购物车”按钮。并将所选产品附加到购物车列表中

StreamBuilder(
//TODO:解决此问题
流:电子商务App.firestore
.收款(“项目”)
.where(“shortInfo”,
isEqualTo:EcommerceApp.sharedPreferences
.getStringList(电子商务App.userCartList)[i])
.snapshots(),
生成器:(上下文,快照){
return!snapshot.hasData
?滑动双轴适配器(
儿童:中心(
子对象:CircularProgressIndicator(),
),
)
:snapshot.data.docs.length==0
?beginBuildingCart()
:SliverList(
代表:SliverChildBuilderDelegate(
(上下文、索引){
ItemModel model=ItemModel.fromJson(
snapshot.data.docs[index].data(),
);
如果(索引==1){
总数=0;
合计金额=模型价格+合计金额;
}否则{
合计金额=模型价格+合计金额;
}
if(snapshot.data.docs.length-1==索引){
WidgetsBinding.instance
.addPostFrameCallback((时间戳){
(上下文)的提供者,
听:错)
.显示(总金额);
});
}
返回storeSourceInfo(模型、上下文、,
removeCartFunction:()=>
removeItemFromuserCart(
model.shortInfo);
},
childCount:snapshot.hasData
?snapshot.data.docs.length
: 0,
),
);
},
)

使用这段代码,我创建了一个名为“userCartList”的SharedReferences列表,每次添加cart按钮时,该列表都会用唯一ID“shortInfo”进行更新,然后使用我的产品数据库查询保存的“shortInfo”列表,该数据库返回一个流。

但在我的例子中,我有产品列表api和cart的additem,获取购物车API。我想添加产品,并使用rest API增加产品数量。我建议您在另一个问题中发布此部分,并提供json字符串。对于有同样问题的人来说,搜索和帮助你会更容易。
StreamBuilder<QuerySnapshot>(
          //TODO: to fix the issue
          stream: EcommerceApp.firestore
              .collection("items")
              .where("shortInfo",
                  isEqualTo: EcommerceApp.sharedPreferences
                      .getStringList(EcommerceApp.userCartList)[i])
              .snapshots(),
          builder: (context, snapshot) {
            return !snapshot.hasData
                ? SliverToBoxAdapter(
                    child: Center(
                      child: CircularProgressIndicator(),
                    ),
                  )
                : snapshot.data.docs.length == 0
                    ? beginBuildingCart()
                    : SliverList(
                        delegate: SliverChildBuilderDelegate(
                          (context, index) {
                            ItemModel model = ItemModel.fromJson(
                              snapshot.data.docs[index].data(),
                            );
                            if (index == 1) {
                              totalAmount = 0;
                              totalAmount = model.price + totalAmount;
                            } else {
                              totalAmount = model.price + totalAmount;
                            }

                            if (snapshot.data.docs.length - 1 == index) {
                              WidgetsBinding.instance
                                  .addPostFrameCallback((timeStamp) {
                                Provider.of<TotalAmount>(context,
                                        listen: false)
                                    .display(totalAmount);
                              });
                            }
                            return storeSourceInfo(model, context,
                                removeCartFunction: () =>
                                    removeItemFromuserCart(
                                        model.shortInfo));
                          },
                          childCount: snapshot.hasData
                              ? snapshot.data.docs.length
                              : 0,
                        ),
                      );
          },
        )