var wfa_res = await CallApi().getData('waiting_for_approval/waiting_approval_list/'+widget.username+'/'+'0/requisition');
var wfa_res_body = json.decode(wfa_res.body);
在小部件中
for(var my_index = 0; my_index < wfa_res_body.length; my_index++)
Container(
padding: EdgeInsetsDirectional.fromSTEB(5,5,5,5),
// child: Text('design'),
child: Text(approvalInfo != null?approvalInfo['page_data'][my_index]['requisition_code']:''),
),
错误 抛出另一个异常:NoSuchMethodError:方法'[]'在null上调用。
答案 0 :(得分:1)
问题是您的小部件在异步方法完成之前就已经构建好了。 尝试使用将来的构建器,例如
您的方法:
Future yourMethodName() async {
var wfa_res = await CallApi().getData('waiting_for_approval/waiting_approval_list/'+widget.username+'/'+'0/requisition');
var wfa_res_body = json.decode(wfa_res.body);
return wfa_res_body;
}
未来构建器:
FutureBuilder(
future: yourMethodName(),
builder: (context, AsyncSnapshot snapshot) {
if (snapshot.data == null) {
return Center(child: CircularProgressIndicator());
}
// after getting data from api
},
);
答案 1 :(得分:0)
我解决了这个问题。实际上,api响应太慢。现在我设置了一个装载机。并且工作正常。感谢所有人的回答。