【发布时间】:2017-05-06 14:57:19
【问题描述】:
请看一下这段代码:
final calculate = new FlatButton(
child: new Text(_calculate),
onPressed: _valid
? () {
setState(() {
model.inTemperature = stringToDouble(strTemperature);
model.calculateOutTemperature();
});
}
: null);
当点击按钮时,setState() 会被一个执行赋值和方法调用的 lambda 调用。完美运行。我想要做的是,如果提交了一个文本字段,则执行相同的setState()。
实现这一点的最简单方法是在该按钮上使用performClick()。例如,Android 知道这一点。但是,Flutter 没有这样的方法。所以,我要做的是:
onSubmitted: (newValue) {
setState(() {
strTemperature = newValue.trim();
calculate.onPressed();
});
},
这也很好用。我的问题是:我可以自己调用onPressed() 回调吗?是否存在我的代码可能会中断的情况?
【问题讨论】: