我想获取一个future函数的值(没有futurebuilder),在其中我加载了一个json文件,我把这个值放在一个文本小部件中,但它返回给我这个消息**“'Future void'的示例”**我不知道为什么。
helperLoadJson.dart
//Load Json
Future<String> _loadAStudentAsset() async {
return await rootBundle.loadString('assets/Copie.json');
}
//Load Response
Future loadStudent([int index]) async {
String jsonString = await _loadAStudentAsset();
final jsonResponse = json.decode(jsonString);
QuotList quotList = QuotList.fromJson(jsonResponse);
return quotList.quots[0].country;
}
main.dart
class _MyHomePageState extends State<MyHomePage> {
//Get Future from helperLoadJson.dart
Future<void> getLoadStudent() async {
final String myQuot = await loadStudent();
print(myQuot); // OK , return me good value
}
@override
Widget build(BuildContext context) {
print('getLoadStudent : ${getLoadStudent()}'); // return " Instance of 'Future<void>' "
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'${getLoadStudent()}', // return " Instance of 'Future<void>' "
),
Container(
// child: projectWidget(),
)
],
),
),
);
}
}
1条答案
按热度按时间mf98qq941#
whenComplete在这个future完成时被调用,无论它是带值还是带错误。
then在这个future完成时被调用
onError在此future完成时被调用。(仅捕获E类型的错误)