Rah*_*hra 3 parameters action parameter-passing void flutter
我想将参数从我的Dialouge框(Void函数)传递给另一个void函数,但是会出错
无法分配给参数类型()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);
}
Run Code Online (Sandbox Code Playgroud)
第二功能:
void _addtoCart(BuildContext context, productId) {
print("Quantity: $quantity");
print("productId: $productId");
print("data: $data");
}
Run Code Online (Sandbox Code Playgroud)
请点击此处查看截图
更改
onPressed: _addtoCart(context, productId)
Run Code Online (Sandbox Code Playgroud)
至
onPressed: () => _addtoCart(context, productId)
Run Code Online (Sandbox Code Playgroud)
传递函数,而不是函数调用的结果(返回值_addtoCart()返回void并产生错误.
如果_addtoCart不采用任何参数,您可以使用较短的形式
onPressed: _addtoCart
Run Code Online (Sandbox Code Playgroud)
但是如果你添加()函数被调用并且传递了返回值,() =>那么你可以再次使它成为函数引用,或者在这种情况下是一个闭包.
| 归档时间: |
|
| 查看次数: |
2153 次 |
| 最近记录: |