Flutter 获取initState中的等待未来数据颤振给出空值
尝试使用async/await在initState中获取数据时,每次都会给出null值。等待完成后如何设置值Flutter 获取initState中的等待未来数据颤振给出空值,flutter,dart,flutter-widget,Flutter,Dart,Flutter Widget,尝试使用async/await在initState中获取数据时,每次都会给出null值。等待完成后如何设置值 void initState() { convertFutureMakes().then((result) { setState(() { _makesList = result; }); }); CarMake brand = _makesList.firstWhere((obj)=>obj.name == make);
void initState() {
convertFutureMakes().then((result) {
setState(() {
_makesList = result;
});
});
CarMake brand = _makesList.firstWhere((obj)=>obj.name == make);
super.initState();
}
_makesList始终为空,因此在使用该列表时会出现错误。下面是ConvertureMakes方法
convertFutureMakes() async{
List<CarMake> makes = await getCarMakes();
return makes;
}
convertFutureMakes()异步{
List makes=wait getCarMakes();
回报;
}
getCarMakes从Api获取数据。但这需要一些时间,而不是等待。我如何确保它在使用前有数据,或以其他方式解决该问题
CarMake brand = _makesList.firstWhere((obj)=>obj.name == make);
需要位于then()回调中,否则无法确定它将在以下时间之前还是之后执行:
_makesList = result;
换句话说,convertFutureMakes()之后的代码在调用then()回调之前运行,这就是为什么没有值。事实上,永远不会有价值
尝试:
ConvertFutureMRemakes函数中的make返回值是什么?@proversion对象列表(CarMake)如果您正在接收一个Json对象,您可以使用未来的构建器并传递快照条件,如hasData/error等,以选择性地构建小部件或其他相关内容。如果您需要这方面的帮助,请共享Json文件示例/模板,但我也必须在小部件中使用该结果,并执行一些操作…在那里,当我获取这些小部件的内部数据时,它会给出null签出FutureBuilder。和
convertFutureMakes().then((result) {
setState(() {
_makesList = result;
CarMake brand = _makesList.firstWhere((obj)=>obj.name == make);
});
});