Я хочу передать параметр из своего диалогового окна (функция 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");
}
Пожалуйста, проверьте скриншот здесь
Если вы получили сообщение об ошибке, пожалуйста, отправьте всегда полное и точное сообщение об ошибке, а не какое-то приближение.
Это ошибка, проверьте скриншот prnt.sc/knty5r





Изменять
onPressed: _addtoCart(context, productId)
к
onPressed: () => _addtoCart(context, productId)
для передачи функции вместо результата вызова функции (возвращаемое значение _addtoCart(), которое возвращает void и выдает ошибку.
Если _addtoCart не принимает никаких параметров, вы можете использовать более короткую форму
onPressed: _addtoCart
но если вы добавляете (), функция вызывается и вместо нее передается возвращаемое значение, а с () => вы можете снова сделать его ссылкой на функцию или, в данном случае, закрытием.
Что такое
box(Void function)? Какая линия вызывает проблемы? Вы получаете сообщение об ошибке? Который из?