Передать переменную в функцию void во флаттере - PullRequest
0 голосов
/ 28 августа 2018

Я хочу передать параметр из моего диалогового окна (функция Void) в другую функцию void, но получаю ошибку

нельзя назначить параметру 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");
  }

Пожалуйста, проверьте скриншот здесь

enter image description here

1 Ответ

0 голосов
/ 28 августа 2018

Изменение

onPressed: _addtoCart(context, productId)

до

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

для передачи функции вместо результата вызова функции (возвращаемое значение _addtoCart() возвращает void и выдает ошибку.

Если _addtoCart не будет принимать никаких параметров, вы можете использовать более короткую форму

onPressed: _addtoCart

но если вы добавите (), то функция вызывается и вместо нее передается возвращаемое значение, и с помощью () => вы можете снова сделать ее ссылкой на функцию или в этом случае закрытием.

...