【问题标题】:if else statement inside if else ternary statement in dartif else 中的 if else 语句 if else 飞镖中的三元语句
【发布时间】:2021-09-22 16:47:36
【问题描述】:

我有一个案例需要说明

if (_amplifyConifured) {
  if (_isUserIsLoggedIn) {
    return DashboardScreen.routeName;
  } else {
    return LoginScreen.routeName;
  }
} else {
  LoadingScreen.routeName;
}


试过这个:

 _amplifyConfigured ? 
          _isUserIsLoggedIn ? DashboardScreen.routeName : LoginScreen.routeName :
          LoginScreen.routeName : LoadingScreen.routeName

但它不会抛出错误

请帮忙

【问题讨论】:

    标签: flutter dart if-statement


    【解决方案1】:

    让我们试试,你用了一个语句

    _amplifyConfigured ? 
              _isUserIsLoggedIn ? DashboardScreen.routeName : LoginScreen.routeName : LoadingScreen.routeName
    

    【讨论】:

    • thanks 错误消失了,但是当 _isUserIsLoggedIn 为真时,它会显示 LoginScreen
    • _isUserIsLoggedIn为真应该显示DashboardScreen.routeName,你可以检查你的代码是_isUserIsLoggedIn 是真还是假?否则刷新你的ide
    【解决方案2】:
    _amplifyConifured?
      _isUserIsLoggedIn? 
         DashboardScreen.routeName:  
          LoginScreen.routeName:
    LoadingScreen.routeName;
    

    【讨论】:

    • 谢谢。但是屏幕现在只显示 loadingScreen 即使两者都是真的
    • 您可以尝试使用flutter clean 并再次重建,我的意思是它甚至可能,您还可以检查您在哪里应用它吗?还要确保状态管理属性。
    • @YeasinSheikh 但您错过了代码中的 `LoginScreen.routeName` 语句
    • 谢谢,我的错。与LoadingScreenLoginScreen 混合使用
    • 这是我的荣幸
    最近更新 更多