嘗試從本地保存的 JSON 獲取資料時,連接狀態為 none。 我想要做的是使用 JSON 作為下拉值構建下拉小部件
class _TestState extends State<Test> {
var stateList;
initState() {
_getStateList();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: SingleChildScrollView(
child: FutureBuilder(
future: _getStateList(), // async work
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
print(snapshot);
switch (snapshot.connectionState) {
case ConnectionState.none:
return Text('Press button to start.');
case ConnectionState.active:
case ConnectionState.waiting:
return Text('Awaiting result...');
case ConnectionState.done:
if (snapshot.hasError) return Text('Error: ${snapshot.error}');
return Text('Result: ${snapshot.data}');
// You can reach your snapshot.data['url'] in here
}
},
)),
);
}
_getStateList() {
// setState(() {
DetailServices().stateJson().then((res) => {stateList = res});
// });
}
}
uj5u.com熱心網友回復:
你需要一個Future<String>為未來的財產。因此,更改以下代碼:
_getStateList() {
// setState(() {
DetailServices().stateJson().then((res) => {stateList = res});
// });
}
到:
Future<String> _getStateList() {
return DetailServices().stateJson();
}
uj5u.com熱心網友回復:
問題是 _getStateList 不回傳任何內容,它應該回傳未來,或者您創建一個未來的欄位并將其設定在 _getStateList
我在媒體上有一篇關于異步更改 UI 的舊文章,它可能對您有幫助 文章鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/366996.html
