如何在 onPressed 上创建三元运算符
how to make ternary operator on onPressed
我是 运行 与下面的代码类似的代码
showPage 是一个布尔值。结果是一个字符串。
页面本身的操作将决定 bool 状态和字符串。
下面的 onPressed 是我所在页面的底部按钮。供用户导航。
我希望onPressed根据showPage的状态弹出不同的对话框,并打印结果。
代码如下:
onPressed: showPage? ()
{ShowDialogA(context:context); print(results);}
:{ShowDialogB(context:context); print(results);},
但是我在 ShowDialogB 之后的第一个分号处出错:'expected to find }'
有什么想法吗?
如果我删除分号并执行以下操作:
onPressed: showPage? ()
{ShowDialogA(context:context); print(results);}
:ShowDialogB(context:context),
我收到错误:类型 'Future' 不是类型 '(() => void)?'
的子类型
将 {ShowDialogB(context:context); print(results);}
读取为 else-ternary-result 是因为 onPressed
属性 需要一个函数,并且在您显示的代码中,只有 if-ternary-result ( (){ShowDialogA(context:context); print(results);}
) 是一个正确的函数。我相信你只是忘记了 {ShowDialogB(context:context); print(results);}
之前的两个括号 ()
,所以你应该将其替换为 (){ShowDialogB(context:context); print(results);}
至于你的三元语法,不用担心,因为它是正确的!只需按如下方式更正您的函数:
onPressed: showPage ? () {
ShowDialogA(context:context);
print(results);
} : () {
ShowDialogB(context:context);
print(results);
},
如果它解决了您的问题,请告诉我!
您收到错误消息是因为在 else 命令中您忘记输入 ()。
试试这个:
onPressed: showPage
? () {
ShowDialogA(context:context); print(results);
}
: () {
ShowDialogB(context:context); print(results);
},
我是 运行 与下面的代码类似的代码
showPage 是一个布尔值。结果是一个字符串。
页面本身的操作将决定 bool 状态和字符串。
下面的 onPressed 是我所在页面的底部按钮。供用户导航。
我希望onPressed根据showPage的状态弹出不同的对话框,并打印结果。
代码如下:
onPressed: showPage? ()
{ShowDialogA(context:context); print(results);}
:{ShowDialogB(context:context); print(results);},
但是我在 ShowDialogB 之后的第一个分号处出错:'expected to find }' 有什么想法吗?
如果我删除分号并执行以下操作:
onPressed: showPage? ()
{ShowDialogA(context:context); print(results);}
:ShowDialogB(context:context),
我收到错误:类型 'Future' 不是类型 '(() => void)?'
的子类型将 {ShowDialogB(context:context); print(results);}
读取为 else-ternary-result 是因为 onPressed
属性 需要一个函数,并且在您显示的代码中,只有 if-ternary-result ( (){ShowDialogA(context:context); print(results);}
) 是一个正确的函数。我相信你只是忘记了 {ShowDialogB(context:context); print(results);}
之前的两个括号 ()
,所以你应该将其替换为 (){ShowDialogB(context:context); print(results);}
至于你的三元语法,不用担心,因为它是正确的!只需按如下方式更正您的函数:
onPressed: showPage ? () {
ShowDialogA(context:context);
print(results);
} : () {
ShowDialogB(context:context);
print(results);
},
如果它解决了您的问题,请告诉我!
您收到错误消息是因为在 else 命令中您忘记输入 ()。 试试这个:
onPressed: showPage
? () {
ShowDialogA(context:context); print(results);
}
: () {
ShowDialogB(context:context); print(results);
},