将变量传递给颤振中的void函数

Pass variable to void function in flutter

我想将参数从我的对话框(Void 函数)传递给另一个 void 函数,但出现错误

can't be assigned to the parameter type () void flutter

并且 setState 也不起作用。

请在此处检查我的代码:

第一个函数

  void _quantity(BuildContext context, productId,quantity){

    setState(() {
      productId = productId;
      quantity = quantity;
      _quantityController.text = '$quantity';
    });
    var alert = new AlertDialog(
     actions: <Widget>[
        FlatButton(
          child: Text("Save"),
          onPressed: _addtoCart(context, productId)
        )
      ],
    );

    showDialog(context: context,builder: (context) => alert);

  }

第二个函数:

void _addtoCart(BuildContext context, productId) {
    print("Quantity: $quantity");
    print("productId: $productId");
    print("data: $data");
  }

请在此处查看屏幕截图

改变

onPressed: _addtoCart(context, productId)

onPressed: () => _addtoCart(context, productId)

传递一个函数,而不是函数调用的结果(_addtoCart() 的 return 值 return s void 并产生错误。

如果_addtoCart不接受任何参数,您可以使用更短的形式

onPressed: _addtoCart

但是如果你添加 () 函数被调用并且传递 return 值而不是使用 () => 你可以再次使它成为一个函数引用或者在这种情况下是一个闭包。