首页 > 解决方案 > 如何在按钮中使用 if else 条件 - 颤动

问题描述

在满足特定条件后用户按下此按钮后,我试图显示一个警报对话框。如果文本为空,它将弹出一个对话框,但是使用我在下面尝试的方法,即使按下按钮后文本不为空,它仍会弹出对话框。

RaisedButton(
                onPressed: priceController.text == ""
                    ? () => showDialog(
                        context: context,
                        builder: (BuildContext context) {
                          return AlertDialog(
                            title: Text("Enter a price"),
                          );
                        })
                    : () => apiRequest(url, {
                          'price': priceController.text,
                          'user_id': "user2"
                        }),
                child: Text("Set Level"),
              );

标签: buttonflutterconditional-statements

解决方案


与其拥有两个函数,不如只拥有一个并将您的逻辑写在里面。像这样:

RaisedButton(
  onPressed: () {
    if (priceController.text == "") {
      showDialog(
          context: context,
          builder: (BuildContext context) {
            return AlertDialog(
              title: Text("Enter a price"),
            );
          });
    } else {
      apiRequest(url, {'price': priceController.text, 'user_id': "user2"});
    }
  },
  child: Text("Set Level"),
);

推荐阅读