在 a 中FutureBuilder
,snapshot.ConnectionState
一直在等待,但 future 函数成功完成。当在不同的页面中时,相同的代码块起作用并且ConnectionState
从等待到完成的转换。
未来功能:
Future getDoctors() async {
var res = await http.get(globals.domain + "users/docs/");
var resBody = json.decode(utf8.decode(res.bodyBytes));
print(res.statusCode);
if (res.statusCode == 200) {
if (mounted) {
setState(() {
doctors = resBody;
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
未来建设者:
FutureBuilder(
future: getDoctors(),
builder: (BuildContext context, snapshot) {
print(snapshot);
}
)
Run Code Online (Sandbox Code Playgroud)
实际结果:
AsyncSnapshot<dynamic>(ConnectionState.waiting, null, null)
预期结果:过渡到 AsyncSnapshot<dynamic>(ConnectionState.done, null, null)
EDIT1:调试时注意到future函数getDoctors()
会被定期调用,我想这就是快照总是在等待的原因