Flutter 'List<Post>' 没有实例 getter 'lenght'

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

我是 Flutter 新手。我收到这样的错误,你能帮帮我吗?
我已经在 http for json 中停留了 5 天,源代码中的代码不起作用。 :( 大号

它说列表未输入但是当我输入时它不接受它。 我不知道问题出在哪一行,但我收到了类似的警告。 “以下 NoSuchMethodError 被抛出构建 FutureBuilder(脏,状态:_FutureBuilderState#447cc):”

enter image description here

enter image description here

// To parse this JSON data, do
//
//     final post = postFromJson(jsonString);

import 'dart:convert';

Post postFromJson(String str) => Post.fromJson(json.decode(str));

String postToJson(Post data) => json.encode(data.toJson());

class Post {
  Post({
    required this.userId,
    required this.id,
    required this.title,
    required this.body,
  });

  int userId;
  int id;
  String title;
  String body;

  factory Post.fromJson(Map<String, dynamic> json) => Post(
    userId: json["userId"],
    id: json["id"],
    title: json["title"],
    body: json["body"],
  );

  Map<String, dynamic> toJson() => {
    "userId": userId,
    "id": id,
    "title": title,
    "body": body,
  };
}
import 'dart:convert';


import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:json_http_place_holder/post.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  Future getData = Future(() => null);
  var con = Uri.parse("https://jsonplaceholder.typicode.com/posts");

  Future<List<Post>> fetchPost() async {
    List<Post> result = <Post>[];
    final response = await http.get(con);
    if (response.statusCode == 200) {
      List listPost = jsonDecode(response.body);
      for (int i = 0; i < listPost.length; i++) {
        Post item = Post.fromJson(listPost[i]);
        result.add(item);
      }
    }
    return result;
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    getData = fetchPost();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter HTTP json',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        body: FutureBuilder(
          future: getData,
          builder: (BuildContext context,  AsyncSnapshot<dynamic> snapshot) {
            if (snapshot.connectionState == ConnectionState.waiting) {
              return const Center(
                child: CircularProgressIndicator(),
              );
            } else if (snapshot.connectionState == ConnectionState.none) {
              return const Center(
                child: Text("Bir hata meydana geldi"),
              );
            } else if (snapshot.connectionState == ConnectionState.done) {
              return ListView.separated(itemBuilder: (context,index){
                return ListTile(
                  leading: Icon(Icons.local_post_office),
                  title: Text(snapshot.data[index].title),
                  subtitle: Text(snapshot.data[index].body),
                );
              },separatorBuilder: (context,index)=>Divider(),
                itemCount: snapshot.data.lenght,
              );
            }
            //var d =jsonDecode(snapshot.data.body);
            return Container();
          },
        ),
      ),
    );
  }
}

你没把length拼好

错误提示No such method on list lenght

获取方法的正确拼写是.length

改变

 itemCount: snapshot.data.lenght,

 itemCount: snapshot.data.length,

在你的main.dart中, FutureBuilder => separatorBuilder =>

itemCount: snapshot.data.lenght,

将 itemCount 从那个更改为:

物品数量:snapshot.data.length,