我收到此错误:在 get 方法 flutter 中,“String”类型不是“Null”类型的子类型
这是我使用的 get api 函数
Future<Stream<ServiceTypes>> getServiceTypesa() async {
final String url = 'https://test.com';
final client = new http.Client();
final streamedRest = await client.send(
http.Request('get', Uri.parse(url))
);
return streamedRest.stream
.transform(utf8.decoder)
.transform(json.decoder)
.expand((data) => (data as List))
.map((data) => ServiceTypes.fromJson(data));
}
你可以在这里看到函数检测数据我也看到了这个错误
StateError(错误状态:Stream 已被监听。)
和这个错误
这是我的聆听功能
@override
void initState() {
_serviceTypes = new List<ServiceTypes>();
listenForServiceTypes();
super.initState();
}
void listenForServiceTypes() async {
setState(() {
this._show_serviceTypesProgress = true;
});
final Stream<ServiceTypes> stream = await getServiceTypesa();
stream.listen((ServiceTypes serviceTypes) =>
setState(() => _serviceTypes.add(serviceTypes)));
setState(() {
this._show_serviceTypesProgress = false;
});
print(_serviceTypes);
}
这是我做的模型我不知道有什么问题,因为打印函数返回:[]
最佳答案
当您创建模型时,图像类型值为空,因此,该模型是使用 Null 类型的图像创建的,但是当图像不是来自服务器的空类型时,它会给您一个错误
type 'String' is not a subtype of type 'Null' in get method flutter
因为您的图像类型是来自服务器的 String 并且您通过 Null 对象获取值,所以使用 String 类型对象来获取字符串值或图像。
用这个
Class ServiceTypes{
String image;
代替
Class ServiceTypes{
Null image;
关于api - 类型 'String' 不是 get 方法 flutter 中类型 'Null' 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59955033/