Flutter Flatter FutureBuilder不';t更新
我知道已经有一个类似的问题了,但我无法从它的答案中真正解决我的问题。所以我有一个FutureBuilder,它在加载数据时不会更新,我不知道为什么。按照我的理解,在2秒钟的延迟之后,小部件应该被重建(“数据到达”应该被打印)。为什么没有发生这种情况Flutter Flatter FutureBuilder不';t更新,flutter,dart,flutter-futurebuilder,Flutter,Dart,Flutter Futurebuilder,我知道已经有一个类似的问题了,但我无法从它的答案中真正解决我的问题。所以我有一个FutureBuilder,它在加载数据时不会更新,我不知道为什么。按照我的理解,在2秒钟的延迟之后,小部件应该被重建(“数据到达”应该被打印)。为什么没有发生这种情况 import 'package:flutter/material.dart'; class NewQRPage extends StatefulWidget { @override _NewQRPageState createState()
import 'package:flutter/material.dart';
class NewQRPage extends StatefulWidget {
@override
_NewQRPageState createState() => _NewQRPageState();
}
class _NewQRPageState extends State<NewQRPage> {
Future link;
@override
void initState() {
link = getLink();
super.initState();
}
getLink() async{
Future.delayed(Duration(milliseconds: 2000),(){
print("Data Returned");
return "hello";
});
}
@override
Widget build(BuildContext context) {
return Container(
child: FutureBuilder(
future: link,
builder: (context, snapshot) {
if(snapshot.hasData){
print("Data Arrived");
return Text(snapshot.data);
}
else if(snapshot.hasError){
print("Error");
return Text("Error");
}
else {
print("No Data");
return Text("No Data");
}
},
),
);
}
}
您不应该在lamda中返回
“Hello”
,即(){}
试一试
Future getLink()异步{
等待未来。延迟(持续时间(毫秒:2000));
打印(“返回的数据”);
回复“你好”;
}
Performing hot restart...
Syncing files to device LYA L29...
Restarted application in 1.044ms.
I/flutter (22206): onStartCalled
I/flutter (22206): No Data
I/flutter (22206): No Data
I/flutter (22206): No Data
I/flutter (22206): Data Returned
Future<String> getLink() async{
await Future.delayed(Duration(milliseconds: 2000));
print("Data Returned");
return "hello";
}