Flutter 条件为真时不显示循环进度指示器
在下面的代码中, 我有一个Future Provider,它提供了一些未来的值,当我执行代码时 最初,当列表为空时,它应该显示循环进度小部件 但是对于正在构建的长度为null的ListView,它给出了一个例外Flutter 条件为真时不显示循环进度指示器,flutter,flutter-provider,Flutter,Flutter Provider,在下面的代码中, 我有一个Future Provider,它提供了一些未来的值,当我执行代码时 最初,当列表为空时,它应该显示循环进度小部件 但是对于正在构建的长度为null的ListView,它给出了一个例外 当未来值仍未收到时,如何在DCator中显示循环进度您的打印语句是实际问题。当数据为null时,它也会检查长度,因此我抛出错误,因为您也无法看到CircularProgressIndicator。我认为帖子不为null。我建议你记录你的帖子列表。它将显示将要发生的情况。您可以使用以下条件
当未来值仍未收到时,如何在DCator中显示循环进度您的打印语句是实际问题。当数据为null时,它也会检查长度,因此我抛出错误,因为您也无法看到CircularProgressIndicator。我认为帖子不为null。我建议你记录你的帖子列表。它将显示将要发生的情况。您可以使用以下条件posts进行检查吗?length==0 | |?@VirenVVarasadiya:我已经尝试使用post==null和post.length==0,但它给出了相同的错误,并且数据中没有问题,几秒钟后列表将正确显示,只是它在检索实际的
import 'package:flutter/material.dart';
import 'package:futureprovider/Employee.dart';
import 'package:futureprovider/EmployeeService.dart';
import 'package:provider/provider.dart';
void main() => runApp(MyApp(
));
class MyApp extends StatelessWidget {
final PostService fur = PostService();
@override
Widget build(BuildContext context) {
return MultiProvider(
providers: [
FutureProvider(create:(context)=> fur.getEmployees(),
catchError: (context,e){
print(e.toString());
},
//initialData: [Post(id:1,name: 1,title: '1',body: '1')],
)
],
child: MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Posts Dashboard")),
body:TilesOfPost(),
),
),
);
}
}
class TilesOfPost extends StatelessWidget {
@override
Widget build(BuildContext context) {
List<Post> posts = Provider.of<List<Post>>(context);
print("Length:"+posts.length.toString());
return (posts==null)? Center(child:CircularProgressIndicator()):ListView.builder(
itemCount: posts.length,
itemBuilder: (context,index){
return ListTile(
title: Text(posts[index].id.toString()),
subtitle: Text(posts[index].name.toString())
);
}
);
}
}