469,156 Members | 2,172 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,156 developers. It's quick & easy.

Flutter 'List<Post>' has no instance getter 'lenght'

I'm new to flutter. I am getting an error like this, can you help me?
I've been stuck in http for json for 5 days, the codes in the source don't work. :( L

It says list not entered but when I enter it does not accept it. I don't know on which line the problem is, but I got a warning like. "The following NoSuchMethodError was thrown building FutureBuilder(dirty, state: _FutureBuilderState#447cc):"

https://dosya.co/w8rxecrl44rz/Capture.JPG.html
https://dosya.co/vk6rd85o7zkx/Capture.JPG2.JPG.html

Expand|Select|Wrap|Line Numbers
  1. import 'dart:convert';
  2.  
  3. Post postFromJson(String str) => Post.fromJson(json.decode(str));
  4.  
  5. String postToJson(Post data) => json.encode(data.toJson());
  6.  
  7. class Post {
  8.   Post({
  9.     required this.userId,
  10.     required this.id,
  11.     required this.title,
  12.     required this.body,
  13.   });
  14.  
  15.   int userId;
  16.   int id;
  17.   String title;
  18.   String body;
  19.  
  20.   factory Post.fromJson(Map<String, dynamic> json) => Post(
  21.     userId: json["userId"],
  22.     id: json["id"],
  23.     title: json["title"],
  24.     body: json["body"],
  25.   );
  26.  
  27.   Map<String, dynamic> toJson() => {
  28.     "userId": userId,
  29.     "id": id,
  30.     "title": title,
  31.     "body": body,
  32.   };
  33. }
Expand|Select|Wrap|Line Numbers
  1. import 'dart:convert';
  2.  
  3.  
  4. import 'package:flutter/material.dart';
  5. import 'package:http/http.dart' as http;
  6. import 'package:json_http_place_holder/post.dart';
  7.  
  8. void main() {
  9.   runApp(const MyApp());
  10. }
  11.  
  12. class MyApp extends StatefulWidget {
  13.   const MyApp({Key? key}) : super(key: key);
  14.  
  15.   @override
  16.   State<MyApp> createState() => _MyAppState();
  17. }
  18.  
  19. class _MyAppState extends State<MyApp> {
  20.   Future getData = Future(() => null);
  21.   var con = Uri.parse("https://jsonplaceholder.typicode.com/posts");
  22.  
  23.   Future<List<Post>> fetchPost() async {
  24.     List<Post> result = <Post>[];
  25.     final response = await http.get(con);
  26.     if (response.statusCode == 200) {
  27.       List listPost = jsonDecode(response.body);
  28.       for (int i = 0; i < listPost.length; i++) {
  29.         Post item = Post.fromJson(listPost[i]);
  30.         result.add(item);
  31.       }
  32.     }
  33.     return result;
  34.   }
  35.  
  36.   @override
  37.   void initState() {
  38.     // TODO: implement initState
  39.     super.initState();
  40.     getData = fetchPost();
  41.   }
  42.  
  43.   @override
  44.   Widget build(BuildContext context) {
  45.     return MaterialApp(
  46.       title: 'Flutter HTTP json',
  47.       theme: ThemeData(
  48.         primarySwatch: Colors.blue,
  49.       ),
  50.       home: Scaffold(
  51.         body: FutureBuilder(
  52.           future: getData,
  53.           builder: (BuildContext context,  AsyncSnapshot<dynamic> snapshot) {
  54.             if (snapshot.connectionState == ConnectionState.waiting) {
  55.               return const Center(
  56.                 child: CircularProgressIndicator(),
  57.               );
  58.             } else if (snapshot.connectionState == ConnectionState.none) {
  59.               return const Center(
  60.                 child: Text("Bir hata meydana geldi"),
  61.               );
  62.             } else if (snapshot.connectionState == ConnectionState.done) {
  63.               return ListView.separated(itemBuilder: (context,index){
  64.                 return ListTile(
  65.                   leading: Icon(Icons.local_post_office),
  66.                   title: Text(snapshot.data[index].title),
  67.                   subtitle: Text(snapshot.data[index].body),
  68.                 );
  69.               },separatorBuilder: (context,index)=>Divider(),
  70.                 itemCount: snapshot.data.lenght,
  71.               );
  72.             }
  73.             //var d =jsonDecode(snapshot.data.body);
  74.             return Container();
  75.           },
  76.         ),
  77.       ),
  78.     );
  79.   }
  80. }
2 Weeks Ago #1
0 2270

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

3 posts views Thread by Kiwi | last post: by
9 posts views Thread by Andrey Koptyaev | last post: by
3 posts views Thread by Martin Pöpping | last post: by
1 post views Thread by CARIGAR | last post: by
reply views Thread by zhoujie | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.