0
請看看下面的代碼段:使用Flutter,模擬FlatButton點擊的正確方法是什麼?
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()
回調嗎?有我的代碼可能會破壞的場景嗎?
Rainer,謝謝。你當然是對的,我的解決方案看起來有點像解決方法。 :-)將幾行共享代碼重構成一個方法,並從onPressed()和onSubmitted()調用它是一個乾淨而漂亮的解決方案。讓我們看看其他人是否提出了其他建議。 – Thomas
Rainer的建議對我來說看起來不錯,我贊成 –
......現在已被接受。 ;-) 多謝你們。 – Thomas