
List posts=[];
Future getPost()async{
var url="https://jsonplaceholder.typicode.com/posts" ;
var http;
var response = await http.get(url);
var responsebody = jsonDecode(response.body) ;
return responsebody ;
// ignore: dead_code
setState(() {
posts.addAll(responsebody);
});
}
@override
void initState() {
getPost();
super.initState();
}
// ignore: dead_code
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title:Text('Alex',style: TextStyle(color: Colors.cyanAccent),),
backgroundColor: Colors.black87,centerTitle: true,),
drawer: Drawer(),
body: posts == null || posts.isEmpty ? Center(child: CircularProgressIndicator(),) :
Center( child: ListView.builder(
itemCount : posts.length,
itemBuilder :(context,i){
return Text("${posts[i]['title']}");
}
,)
));
}}
uj5u.com熱心網友回復:
添加這個類
class MyClass {
final int userId;
final int id;
final String title;
final String body;
MyClass(
this.userId,
this.id,
this.title,
this.body);
factory MyClass.fromMap(Map<String, dynamic> json) {
return MyClass(
json['userId'],
json['id'],
json['title'],
json['body']);
}
}
然后將 getPost() 方法更改為:
import 'package:http/http.dart' as http;
Future getPost()async{
var url="https://jsonplaceholder.typicode.com/posts" ;
var response = await http.get(url);
final parsed = json.decode(response.body).cast<Map<String, dynamic>>();
setState(() {
posts = parsed
.map<MyClass>((json) => MyClass.fromMap(json))
.toList();
});
}
uj5u.com熱心網友回復:
問題在于 SDK 工具。打開命令提示符并運行:
git clean -xfd
重新啟動計算機,然后運行:
flutter upgrade
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/386132.html
