在flutter / dart中,如何在小部件树中添加命令(用于循环,if / then等)?
所以我们说有一棵树
Scaffold(...)
如何在其中添加命令语法。唯一可能的是三元运算符。 (据我所知)
答案 0 :(得分:1)
您可以在build()
内完成此操作,
Widget build(context) {
// use for loop or if else or anything you need
return Scaffold(...);
}
更好的方法是创建专用方法
void _doSomethingHere() {
// use for, if-else etc
}
并在按下的按钮中使用此方法,例如:
RaisedButton(onPressed: _doSomething)
如果您想在build()
之前执行某些操作,则可以覆盖initState()
,例如:
void initState() {
super.initState();
// use for, if-else
}
答案 1 :(得分:1)
如果您使用的是lengthofString
,则可以在initState()
内部进行。否则,可以在StatefulWidget
方法中进行。
答案 2 :(得分:1)
在将UI创建为小部件(树)时无法使用控制结构(if-else)或循环(for,while,do-while)的主要原因是因为flutter试图理解您要创建什么UI。
控制结构if
仅接受一段代码,并在满足条件的情况下执行该代码。
if(condition)
{
//statment(s) to be executed
}
而三元运算符只是根据给定的条件来替换特定的代码/值行。
(condition)
?
value-or-code-to-replaced-if-the-condition-satifies
:
value-or-code-to-replaced-if-the-condition-does-not-satisfy;
由于我们只是返回了UI,因此使用return
关键字将小部件树添加到了构建函数,实际上添加了if
这样的控件结构是没有任何意义的。