我已经尝试了很多事情来调用API和获取数据,这已经令人满意了,但是我无法通过正确的方法来完成它,当我通过构建来完成时,它可以完美地工作,但事实并非如此。正确的地方,当我尝试在initState中执行此操作时,它根本不起作用,甚至不执行print();
$models = Country::find()->where(['flag'=>1])->asArray()->all();
$items = ArrayHelper::map($model, 'id', static function ($data) {
return "{$data['country']} [{$data['code']}]";
});
** 解决了这个问题,在与整个开发团队联系后,我们意识到我的手机没有互联网,开心的一天**
答案 0 :(得分:0)
下面的代码应该可以工作,我在initState方法中添加了一个回调。
class LoaderPublicity extends StatefulWidget {
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return _LoaderPublicity();
}
}
class _LoaderPublicity extends State<LoaderPublicity> {
List allPublicity;
@override
void initState() {
super.initState();
getPublicity().then((value) {
print(allPublicity);
print(value);
});
}
//Obtener todas las publicidades desde el api
Future<void> getPublicity() async {
var response = await http.post(
'http://contablenift.co:3008/consult/getGeneralPublicity',
body: {'actividad': "Turistico", 'location': "No"})
print('????????2');
if (response.statusCode == 200) {
setState(() {
allPublicity = Post.fromJson(json.decode(response.body)).data;
});
}
}
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[Text('Aqui va la publicidad')],
),
);
}
}