Flutter:将数量从主屏幕传递到其他屏幕

时间:2021-03-30 14:09:33

标签: flutter dart

首先,现在我已成功添加到购物车,但我想将详细信息(购物车数量)发送到下一个屏幕。但我不能,也不知道哪里出了问题。

例如,我在第二个屏幕中的cartquantity为空(但在主屏幕中我有'1'数字)。

那么,我该怎么办?

需要添加刷新指标吗??

//this is second screen that i want show the number.

class Detail extends StatefulWidget {
 final String code,cartquantity;
 final User user;
const Detail({Key key, this.user, this.code,this.cartquantity}) : super(key: key);
 @override
 _DetailState createState() => _DetailState();
}

class _DetailState extends State<Detail> {

Product product;
double screenHeight, screenWidth;
String cartquantity = "0";
 int quantity = 1;

//this is the place i want show the number.
 floatingActionButton: FloatingActionButton.extended(
          onPressed: () async {
             if (widget.user.email == "unregistered@easy.com") {
              Toast.show("Please register to use this function", context,
                 duration: Toast.LENGTH_LONG, gravity: Toast.BOTTOM);
               return;
            } else if (widget.user.email == "admin@easy.com") {
               Toast.show("Admin mode!!!", context,
                   duration: Toast.LENGTH_LONG, gravity: Toast.BOTTOM);
              return;
           } else if (widget.user.quantity == "0") {
               Toast.show("Cart empty", context,
                 duration: Toast.LENGTH_LONG, gravity: Toast.BOTTOM);
             return;
            } else {
               await Navigator.push(
                 context,
                  MaterialPageRoute(
                     builder: (BuildContext context) => MainScreen(
                           user: widget.user,
                           )));
               
             _loadCartQuantity();

          }


           },

          icon: Icon(Icons.add_shopping_cart),
          label: Text(cartquantity=cartquantity,
        //style: TextStyle(fontSize: 16.0, color: Colors.black)
              ),
          backgroundColor:Color.fromRGBO(101, 255, 218, 50),

    ) );

 }

1 个答案:

答案 0 :(得分:0)

试试这个:

 final String code;
 Final String cartquantity;
 final User user;

然后在那里:

   label: Text(cartquantity=widget.cartquantity),