类型'_InternalLinkedHashMap <String,dynamic>'不是强制类型转换

时间:2019-12-10 14:32:38

标签: dynamic bloc

我的问题是下一个:

在我的对象类中,声明下一个:

Data.fromJson(Map<String, dynamic> json) {
  id: json['Id'];
  EstadoVisitaId: json['EstadoVisitaId'];
  NombreEstado: json['NombreEstado'];
  UsuarioId: json['UsuarioId'];
  NombreFuncionario: json['NombreFuncionario'];
  ApellidoPaternoFuncionario: json['ApellidoPaternoFuncionario'];
  ApellidoMaternoFuncionario: json['ApellidoMaternoFuncionario'];
  EmailFuncionario: json['EmailFuncionario'];
  ResponsableId: json['ResponsableId'];
  NombreResponsable: json['NombreResponsable'];
  ApellidoPaternoResponsable: json['ApellidoPaternoResponsable'];
  ApellidoMaternoResponsable: json['ApellidoMaternoResponsable'];
  NumeroDocumentoResponsable: json['NumeroDocumentoResponsable'];
  ExtranjeroResponsable: json['ExtranjeroResponsable'];
  TelefonoResponsable: json['TelefonoResponsable'];
  FechaVisitaRealizada: json['FechaVisitaRealizada'];
  HoraInicioVisitaRealizada: json['HoraInicioVisitaRealizada'];
  HoraFinVisitaRealizada: json['HoraFinVisitaRealizada'];
  Fecha: json['Fecha'];
  HoraInicio: json['HoraInicio'];
  HoraFin: json['HoraFin'];
  OrganizacionId: json['OrganizacionId'];
  OrgRut: json['orgRut'];
  OrgDv: json['orgDv'];
  OrgNombre: json['orgNombre'];
  OrgEmail: json['orgEmail'];
  ConcursoId: json['ConcursoId'];
  ConNombre: json['conNombre'];
  ConDescripcion: json['conDescripcion'];
  ConAno: json['conAno'];
  CodigoProyecto: json['CodigoProyecto'];
  proNombreProyecto: json['proNombreProyecto'];
  GeoDireccionId: json['GeoDireccionId'];
  CoordenadaX: json['CoordenadaX'];
  CoordenadaY: json['CoordenadaY'];
  Direccion: json['Direccion'];
  IdRegion: json['IdRegion'];
  Comuna: json['Comuna'];
  ProductoId: json['ProductoId'];
  PrdNombre: json['prdNombre'];
  PrdDescripcion: json['prdDescripcion'];
  CodigoIdentificador: json['CodigoIdentificador'];

}

在我的班级Bloc中:

  BehaviorSubject<List<Data>> _cardsCollection = BehaviorSubject<List<Data>>();
  VisitaAsignada post;
  List<dynamic> _cardResults;

  Stream<List<Data>> get cardList => _cardsCollection.stream;

因此,当收到我的JSON答案时:

final response =
      await http.post(url,headers:{ "Content-Type": "application/json" } ,encoding: Encoding.getByName("utf-8")); //


      if (response.statusCode == 200) {
        Map<String, dynamic> map = json.decode(response.body);
        _cardResults = map["Datos"] as List;
          if (_cardResults==null) {
         return 'ERROR';
        }else{
          //Here is where cast my object type "List<dynamic> _cardResults".

          List<Data> tipoData = _cardResults.cast<Data>();
          _cardsCollection.sink.add(tipoData);

          return 'OK';
        }
      } else {
       throw Exception('Failed to load post');
      }
    }
  }

最后,在我看来:

 return StreamBuilder<List<Data>>(
        stream: cardListBloc.cardList,
        builder: (context, AsyncSnapshot<List<Data>> snapshot) {
          if (snapshot.data == null || snapshot.data.isEmpty){
          return Center(
              child: CircularProgressIndicator(),
            );
          }
          final plays = snapshot.data;
          if (plays.length == 0) {
            return Center(
              child: Text('No records[enter image description here][1]'),
            );
          }
        return Scaffold(
        appBar: _buildBar(context),
        body: ListView.builder(
          itemCount: plays.length,
          scrollDirection: Axis.vertical,
            itemBuilder: (context, index) =>ListTile(
              title: Text(plays[index].proNombreProyecto),
              subtitle: Text(plays[index].CodigoProyecto.toString()),
              trailing: Icon(
                Icons.keyboard_arrow_right,
                color: Colors.green,
              ),
              onTap: () => null,
          )
  ),
      );
        }
    );

错误:

  

小部件库捕获到异常       下面的_CastError被抛出:       类型“ _InternalLinkedHashMap”不是类型转换中“数据”类型的子类型

0 个答案:

没有答案