我的應用中有下拉選單。它作業正常,但是每當我從下拉串列中選擇一個專案時,它都會重新加載整個頁面并設定值。為什么這樣?我不能在不使用 setState(){} 重新加載螢屏的情況下設定變數中的值嗎?
String _selectedHeight = "4 ft";
List<String> height = ["4 ft", "5 ft", "6 ft", "7 ft"];
然后在我的 FutureBuilder(){} 下使用這個下拉選單:
DropdownButton<String>(
value:_selectedHeight,
underline:Container(),
icon: Icon(Icons.keyboard_arrow_down),
iconSize: 24,
isExpanded:true,
items: height.map(( String height) =>DropdownMenuItem<String>(
child:Text(height),
value:height,
)).toList(),
onChanged:(val) {
setState(() {
_selectedHeight = val!;
});
},
),

uj5u.com熱心網友回復:
根據檔案:
呼叫 setState 會通知框架此物件的內部狀態已以可能影響此子樹中的用戶界面的方式發生更改,這會導致框架為此 State 物件安排構建。
因此,如果小部件的狀態發生變化,您必須呼叫 setState 來觸發視圖的重建,并立即看到新狀態所暗示的變化。
uj5u.com熱心網友回復:
您可以只使用“=”運算子。這會在不重繪 狀態的情況下更改變數的值。
使用“setstate”是為了重繪 /重新渲染整個組件以匹配更改,所以我們不能在不使用 setState 重新加載螢屏的情況下設定變數中的值
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/408829.html
標籤:
