Flutter _TypeError(类型';字符串';不是类型';类别列表的子类型)
我试图将我的数据库(MYSQL数据库)中的数据添加为Json,我遇到了这个错误,有人能帮我吗?因为我在寻找问题的解决方案,但我找不到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
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});
}