Flutter 未处理的异常:类型';列表<;动态>';不是类型为';地图<;字符串,动态>';颤振

Flutter 未处理的异常:类型';列表<;动态>';不是类型为';地图<;字符串,动态>';颤振,flutter,Flutter,我是一个新手,尝试从api获取数据进行测试,但我有一些错误,下面是我尝试从中获取数据并将其显示到FutureBuilder的链接,但我无法获取任何人可以帮助我的信息 这是我的密码: class _MyHomePageState extends State<MyHomePage> { final String apiUrl = "https://jsonplaceholder.typicode.com/users"; Future<List<

我是一个新手,尝试从api获取数据进行测试,但我有一些错误,下面是我尝试从中获取数据并将其显示到FutureBuilder的链接,但我无法获取任何人可以帮助我的信息

这是我的密码:

  class _MyHomePageState extends State<MyHomePage> {
  final String apiUrl = "https://jsonplaceholder.typicode.com/users";

  Future<List<Post>> fetchData() async {
    http.Response res = await http.get(apiUrl);

    if (res.statusCode == 200) {
      var obj = json.decode(res.body);
      List<Post> posts = new List<Post>();
      for(int i=0;i>obj.length;i++){
        Post post = Post.fromJson(obj[i]);
        posts.add(post);
        print(post.name);
      }
      return posts;
    }

  }
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    fetchData();

  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: FutureBuilder(
          future: fetchData(),
          builder: (ctx,snapShot){
            if(snapShot.connectionState == ConnectionState.waiting){
              return CircularProgressIndicator();
            }else{
              return ListView.builder(
                  itemBuilder: (context,index){
                    return ListTile(
                      leading: CircleAvatar(),
                      title: Text(""),
                      subtitle: Text(""),
                    );
                  });
            }
          },
        ),
      ),
    );
  }
}
class\u MyHomePageState扩展状态{
最终字符串APIRL=”https://jsonplaceholder.typicode.com/users";
Future fetchData()异步{
Response res=wait http.get(apirl);
如果(res.statusCode==200){
var obj=json.decode(res.body);
列表帖子=新列表();
对于(int i=0;i>obj.length;i++){
Post-Post=Post.fromJson(obj[i]);
增加(员额);
打印(职位名称);
}
返回岗位;
}
}
@凌驾
void initState(){
//TODO:实现initState
super.initState();
fetchData();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(widget.title),
),
正文:中(
孩子:未来建设者(
future:fetchData(),
生成器:(ctx,快照){
if(snapShot.connectionState==connectionState.waiting){
返回循环ProgressIndicator();
}否则{
返回ListView.builder(
itemBuilder:(上下文,索引){
返回列表块(
前导:CircleAvatar(),
标题:文本(“”),
副标题:正文(“”),
);
});
}
},
),
),
);
}
}
下面是我将api json转换为Change的链接

for(int i=0;i>obj.length;i++){
  Post post = Post.fromJson(obj[i]);
  posts.add(post);
  print(post.name);
}
return posts;

var response=List.from(obj.map((i)=>Post.fromJson(i));
返回响应;

之后,将
itemCount:snapShot.data.length
添加到
ListView.builder

错误在Post.fromJson()方法中。你能展示它的实现吗?i>obj.length?还有工作吗?是的,它工作了,但当我制作快照时,我不能在FutureBuilder中调用它。数据[索引]尝试将itemCount:snapShot.data.length添加到您的ListView.builder中。谢谢,您让我度过了美好的一天
var response = List<Post>.from(obj.map((i) => Post.fromJson(i)));
return response;