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