im使用PageView,然后它包含带有多个调查表单的表单和来自async的表单等待获取api,当我进入几毫秒的红色屏幕等待api数据时,它返回正常的
api获取代码
void getSurveyData() async {
surveyData = await http.post(
'survey-pre-mitsu/form-detail',
body: {
"survey_form_header_id": surveyPages['idx'],
},
).then(
(res) {
return res['data'];
},
);
setState(() {});
}
我的小工具表单代码
for (var i = 0; i < surveyData.length; i++)
AdditionalForm(
questionLabel: surveyData[i]['label'],
questionType: surveyData[i]['type'],
),
使用布尔状态变量,在调用api之前和之后更新它。
class _YourWidgetState extends State<YourWidget> {
bool _loading = false;
@override
Widget build(BuildContext context) {
if (_loading) {
// return your loading view
return CircularProgressIndicator();
}
// or return your normal view
return Container();
}
void getSurveyData() async {
setState(() {
_loading = true;
});
surveyData = await http.post(
'survey-pre-mitsu/form-detail',
body: {
"survey_form_header_id": surveyPages['idx'],
},
);
setState(() {
_loading = false;
});
}
}