首页 > 解决方案 > 如何在 Onpressed FlatButton 中放置两个条件?

问题描述

我尝试使用电子邮件和密码的值设置两个条件,以便仅在两个条件得到验证但它不起作用时才激活我的按钮,因为我认为我的语法写得不好。

你能帮我解决这个问题吗?

另外,除了按钮没有像失去功能一样导航到主页这一事实外,我没有任何错误消息。

这是我的代码

child: FlatButton(
                  padding: EdgeInsets.symmetric(vertical: 14, horizontal: 40),
                  color: DarkTurquoise,
                  onPressed: _password.length < 6 ? null :() {
                    !emailRegex.hasMatch(_email) ? null : () {
                      if (_formKey.currentState!.validate()) {
                        print(_email);
                        print(_password);
                      }
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) => HomeScreen(),
                        ),
                      );
                    };
                    },

标签: formsfluttervalidationdartsyntax

解决方案


如果您需要同时验证两个条件,请使用“&&”运算符。

_password.length < 6 && !emailRegex.hasMatch(_email) ? <do something> : <do someting>
child: FlatButton(
                  padding: EdgeInsets.symmetric(vertical: 14, horizontal: 40),
                  color: DarkTurquoise,
                  onPressed: _password.length < 6 && !emailRegex.hasMatch(_email) ? null : () {
                  
                      if (_formKey.currentState!.validate()) {
                        print(_email);
                        print(_password);
                      }
                      Navigator.push(
                        context,
                        MaterialPageRoute(
                          builder: (context) => HomeScreen(),
                        ),
                      );
          
                    },
),

推荐阅读