Flutter _TypeError(类型';字符串';不是类型';类别列表&#的子类型)

Flutter _TypeError(类型';字符串';不是类型';类别列表&#的子类型),flutter,dart,Flutter,Dart,我试图将我的数据库(MYSQL数据库)中的数据添加为Json,我遇到了这个错误,有人能帮我吗?因为我在寻找问题的解决方案,但我找不到 import 'package:flutter/material.dart'; import 'package:youtubeclone/pages/class/categores.dart'; import 'package:youtubeclone/pages/componets/appbarallproject.dart'; import 'pack

我试图将我的数据库(MYSQL数据库)中的数据添加为Json,我遇到了这个错误,有人能帮我吗?因为我在寻找问题的解决方案,但我找不到

    import 'package:flutter/material.dart';
import 'package:youtubeclone/pages/class/categores.dart';
import 'package:youtubeclone/pages/componets/appbarallproject.dart';
import 'package:youtubeclone/pages/componets/mydrawer.dart';
import 'dart:io';
import 'package:image_picker/image_picker.dart';
import '../class/dropdownmenuclass.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class Upload extends StatefulWidget {
  @override
  _UploadState createState() => _UploadState();
}

class _UploadState extends State<Upload> {
  GlobalKey<ScaffoldState> _drawerKey = GlobalKey();

  CategoresList _selectedCategory2;
  List<CategoresList> listcategory = <CategoresList>[];

  Future<List<CategoresList>> getCategories() async {
    var url = "http://10.0.2.2/videoTube/chosecategories.php";
    var response = await http.get(url);
    var responsebody = jsonDecode(response.body);
    for (int i = 0; i < responsebody.length; i++) {
      listcategory.add(responsebody[i]['name']);
    }
  }

  @override
  void initState() {
    getCategories();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _drawerKey,
      drawer: MyDrawer(),
      appBar: AppBarAllProject(drawerKey: _drawerKey),
      body: Container(
        child: Center(
          child: AnimatedContainer(
            duration: Duration(milliseconds: 600),
            curve: Curves.easeOutBack,
            width: MediaQuery.of(context).size.width - 40,
            height: 1000,
            child: Card(
              elevation: 5.0,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [
                  DropdownButton<CategoresList>(
                    hint: Text("Select Categore"),
                    value: _selectedCategory2,
                    onChanged: (CategoresList catey) {
                      setState(() {
                        _selectedCategory2 = catey;
                      });
                    },
                    items: listcategory?.map((CategoresList categoreslist) {
                          return DropdownMenuItem<CategoresList>(
                            value: categoreslist,
                            child: Row(
                              children: <Widget>[
                                Text(
                                  categoreslist.name,
                                ),
                              ],
                            ),
                          );
                        })?.toList() ??
                        [],
                  ),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

错误消息是不言自明的。您正在尝试向包含CategoresList类型的列表中添加字符串

在将其添加到listcategory.add()之前,从responsebody[i]['name']创建一个新的CategoresList

var name=responsebody[i]['name'];
变量类别=类别列表(名称:名称);
添加(类别);
    Future<List<CategoresList>> getCategories() async {
    var url = "http://10.0.2.2/videoTube/chosecategories.php";
    var response = await http.get(url);
    var responsebody = jsonDecode(response.body);
    for (int i = 0; i < responsebody.length; i++) {
      listcategory.add(responsebody[i]['name']);
    }
  }
    import 'package:flutter/material.dart';

class CategoresList {
  final name;

  CategoresList({this.name});
}