Flutter 无法在我的Flatter项目中使用刷新指示器重新加载页面
>我正在制作一个应用程序,它使用http get请求从服务器获取数据 我希望能够使用刷新指示器小部件刷新页面 谁的刷新方法每次都调用我的get请求Flutter 无法在我的Flatter项目中使用刷新指示器重新加载页面,flutter,dart,refresh,future,page-refresh,Flutter,Dart,Refresh,Future,Page Refresh,>我正在制作一个应用程序,它使用http get请求从服务器获取数据 我希望能够使用刷新指示器小部件刷新页面 谁的刷新方法每次都调用我的get请求 Future fetch()异步{ const url=“https:*********.firebaseio.com/nodes.json”; 最终响应=等待http.get(url); 最终extractedData=json.decode(response.body)作为映射; 列表值=[]; extractedData.forEach((键,
Future fetch()异步{
const url=“https:*********.firebaseio.com/nodes.json”;
最终响应=等待http.get(url);
最终extractedData=json.decode(response.body)作为映射;
列表值=[];
extractedData.forEach((键,v){
增值(
节点(cpu:v['cpu'],内存:v['memory'],isLeader:v[''u isLeader']);
设置状态(){
_节点=值;
});
});
}
void initState(){
设置状态(){
_isLoading=true;
});
fetch()。然后(){
设置状态(){
_isLoading=false;
});
});
super.initState();
}
正文:刷新指示器(
onRefresh:fetch,
子项:_isLoading==true
?中心(
子对象:CircularProgressIndicator(),
)
:堆栈(
儿童:[
填充物(
填充:边缘设置。全部(10),
子对象:对齐(
对齐:对齐.bottomCenter,
孩子:Image.network(
"https://rendr.com.au/wp-content/uploads/2018/10/Website-Maintenance-Animation.gif",
),
),
),
你能显示完整的代码吗?我想你需要将onRefresh:refresh,
替换为onRefresh:fetch(),
你能显示完整的代码吗?我想你需要将onRefresh:refresh,
替换为onRefresh:fetch()),
请发布您的刷新方法代码抱歉,在发布问题时,名称刷新只是一个输入错误。我正在从那里调用fetch。请查看我的初始状态代码,它正在使用fetch加载此页面,但之后我无法刷新,因此要更新值,我必须每次重新打开我的应用程序。请发布您的刷新方法代码y在发布问题时,名称刷新只是一个输入错误。我正在从那里调用fetch。请查看我的初始状态代码,该代码正在使用fetch加载此页面,但在此之后我无法刷新,因此要更新值,我必须每次重新打开我的应用程序。抱歉,这只是一个输入错误。我在实际代码中使用fetch,但它也不起作用。i只有当应用程序重新启动时才会抓取我的意思是只有当init state运行时才会抓取这只是一个输入错误我在我的真实代码中使用了fetch,但它也不工作它只有在应用程序重新启动时才会抓取我的意思是只有当init state运行时才会抓取
Future<void> fetch() async {
const url = "https:*********.firebaseio.com/nodes.json";
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
List<Node> value = [];
extractedData.forEach((key, v) {
value.add(
Node(cpu: v['cpu'], memory: v['memory'], isLeader: v['_isleader']));
setState(() {
_nodes = value;
});
});
}
void initState() {
setState(() {
_isLoading = true;
});
fetch().then((_) {
setState(() {
_isLoading = false;
});
});
super.initState();
}
body: RefreshIndicator(
onRefresh: fetch,
child: _isLoading == true
? Center(
child: CircularProgressIndicator(),
)
: Stack(
children: <Widget>[
Padding(
padding: EdgeInsets.all(10),
child: Align(
alignment: Alignment.bottomCenter,
child: Image.network(
"https://rendr.com.au/wp-content/uploads/2018/10/Website-Maintenance-Animation.gif",
),
),
),