如何在小部件树中添加命令?

时间:2019-09-01 13:51:56

标签: flutter dart

在flutter / dart中,如何在小部件树中添加命令(用于循环,if / then等)?

所以我们说有一棵树

Scaffold(...)

如何在其中添加命令语法。唯一可能的是三元运算符。 (据我所知)

3 个答案:

答案 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这样的控件结构是没有任何意义的。