当前位置: 首页 > 知识库问答 >
问题:

类型“String”不是get方法flatter中类型“Null”的子类型

子车青青
2023-03-14

我得到了这个错误:类型'String'不是获取方法flutter中类型'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(错误状态:已侦听流。)

而这个错误

  @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);
  }

这是我做的模型

共有3个答案

夏昌胤
2023-03-14

作为额外信息,您可以检查密钥名称。我遇到了同样的问题,只是因为我试图取一把找不到的钥匙。

第一次我写的是内容,而不是细节,在API中我有细节。

祝您愉快:)

尉迟雅昶
2023-03-14

问题很清楚,您将图像类型定义为空,然后尝试向其传递字符串,尝试更改定义。。像这样:

Class ServiceTypes{
  int id;
  String name;
  String image;
...
郗丰
2023-03-14

当您创建模型时,图像类型值为null,因此,该模型是使用null类型的图像创建的,但当来自服务器的图像不是null类型时,它会给您一个错误

     type 'String' is not a subtype of type 'Null' in get method flutter 

因为您的图像类型是来自服务器的String并且您通过Null Object获取值,所以使用String类型对象来获取字符串值或图像。

使用此

  Class ServiceTypes{
  String image;

而不是

   Class ServiceTypes{
   Null image;
 类似资料: