【问题标题】:Pass variable to void function in flutter将变量传递给颤振中的void函数
【发布时间】:2019-02-03 03:21:03
【问题描述】:

我想将参数从我的对话框(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);

  }

第二个功能:

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

请在此处查看屏幕截图

【问题讨论】:

  • box(Void function) 应该是什么?哪条线路会导致问题?你有错误吗?哪一个?
  • 如果您收到错误消息,请始终发布完整且准确的错误消息,而不是一些近似值。
  • 这是错误请查看截图prnt.sc/knty5r

标签: parameters parameter-passing flutter action void


【解决方案1】:

改变

onPressed: _addtoCart(context, productId)

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

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

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

onPressed: _addtoCart

但是,如果您添加 (),则调用该函数并传递返回值,而使用 () =&gt; 您可以再次将其设置为函数引用,或者在本例中为闭包。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-11
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2020-02-13
    • 2013-10-19
    相关资源
    最近更新 更多