Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何修复类型';列表<;动态>';不是类型为';字符串';_Flutter_Dart_Flutter Layout_Flutter Test - Fatal编程技术网

Flutter 如何修复类型';列表<;动态>';不是类型为';字符串';

Flutter 如何修复类型';列表<;动态>';不是类型为';字符串';,flutter,dart,flutter-layout,flutter-test,Flutter,Dart,Flutter Layout,Flutter Test,目前,我从我的代码中得到了这种问题。我一直在努力解决这个问题。但无法为解决这一问题提供资金 Json代码 { "id": 22, "client_need_id": 46, "clientNeed": { "id": 46, "client_id": 29, "perpose": "Pooja",

目前,我从我的代码中得到了这种问题。我一直在努力解决这个问题。但无法为解决这一问题提供资金

Json代码

{
    "id": 22,
    "client_need_id": 46,
    "clientNeed": {
      "id": 46,
      "client_id": 29,
      "perpose": "Pooja",
      "details": "Test",
      "when": "2020-08-28 20:11",
      "for": null,
      "accepted_by": 10,
      "name": "Sfgdsa",
      "mobile": "567896789",
      "email": "sdnsd@asd.com",
      "org_name": "Buii",
      "address": "Tata",
      "city": "Kolkata",
      "state": "West Bengal",
      "pincode": "789009",
      "country": "India",
      "latitude": null,
      "longitude": null,
      "client_ip": null,
      "device": null,
      "created_at": "2020-08-23T14:40:06.000000Z",
      "updated_at": "2020-09-02T18:07:40.000000Z"
    },
    "quote_details": null,
    "quote_amount": null,
    "isCalled": 0,
    "isChecked": 0,
    "isAccept": 1,
    "isGoing": 0,
    "checkIn": "2020-09-03 02:00:00",
    "checkOut": "2020-09-03 02:00:15",
    "pandit_id": 10,
    "pandit": {
      "id": 10,
      "name": "Ajay Roy",
      "mobile": "8013138886",
      "sms_token": null,
      "mobile_verified_at": null,
      "email": "ajay@abc.com",
      "email_token": null,
      "email_verified_at": null,
      "password": "5f4dcc3b5aa765d61d8327deb882cf99",
      "remember_token": null,
      "avatar": null,
      "address": "dum dum cantonment",
      "city": "Kolkata",
      "state": "West Bengal",
      "country": "India",
      "pincode": 700028,
      "location_id": null,
      "travelled": null,
      "adharcard": "34567890",
      "pancard": "ATD8994568",
      "specialisation": "Vastushastri",
      "services": [
        "Artrology",
        "Numerology"
      ],
      "min_charge": "500",
      "max_charge": "1000",
      "online_charge": "700",
      "qualification": "Test1",
      "experience": "12 Years",
      "language": "Bengali",
      "active": "0",
      "varify": "1",
      "payment_mode": "{\"bank_name\":\"HDFC Bank\",\"bank_address\":\"Dum Dum Cant\",\"ifsc_code\":\"HDFC098765\",\"account_no\":\"987654654678\",\"account_holder\":\"Abit Roy\"}",
      "created_at": "2020-08-31T19:03:56.000000Z",
      "updated_at": "2020-09-16T12:40:54.000000Z"
    },
    "visits": [
      {
        "id": 70,
        "pandit_activity_id": 22,
        "pandit_id": 10,
        "checkIn": "2020-09-03 02:00:00",
        "checkOut": null,
        "created_at": "2020-09-02T20:30:00.000000Z",
        "updated_at": "2020-09-02T20:30:00.000000Z"
      },
      {
        "id": 71,
        "pandit_activity_id": 22,
        "pandit_id": 10,
        "checkIn": null,
        "checkOut": "2020-09-03 02:00:15",
        "created_at": "2020-09-02T20:30:15.000000Z",
        "updated_at": "2020-09-02T20:30:15.000000Z"
      }
    ]
  }

铅模型

import 'dart:convert';

import 'package:PandeetApp/models/client_need.dart';
import 'package:PandeetApp/models/pandit.dart';
import 'package:PandeetApp/models/visit.dart';
import 'package:PandeetApp/services/lead.dart';

class Lead extends LeadService {
  int id;
  int clientNeedId;
  ClientNeed clientNeed;
  String quoteDetails;
  String quoteAmount;
  int isCalled;
  int isChecked;
  int isAccept;
  int isGoing;
  String checkIn;
  String checkOut;
  int panditId;
  Pandit pandit;
  List<Visit> visits;

  Lead({
    this.id,
    this.clientNeedId,
    this.clientNeed,
    this.quoteDetails,
    this.quoteAmount,
    this.isCalled,
    this.isChecked,
    this.isAccept,
    this.isGoing,
    this.checkIn,
    this.checkOut,
    this.panditId,
    this.pandit,
    this.visits,
  });

  Future<List<Lead>> fetchLeads() async {
    var datas = await super.fetchDatas();
    var dataList = json.decode(datas);

    var leads = dataList.map((e) => Lead.fromJson(e)).toList();
    return leads;
  }

  factory Lead.fromJson(Map<String, dynamic> json) {
    List<Visit> visits = List<Visit>();

    if (json['visits'] != null) {
      json['visits'].forEach((v) {
        visits.add(Visit.fromJson(v));
      });
    }

    return Lead(
      id: json['id'],
      clientNeedId: json['client_need_id'],
      clientNeed: json['clientNeed'] != null
          ? ClientNeed.fromJson(json['clientNeed'])
          : ClientNeed(),
      quoteDetails: json['quote_details'],
      quoteAmount: json['quote_amount'],
      isCalled: json['isCalled'],
      isChecked: json['isChecked'],
      isAccept: json['isAccept'],
      isGoing: json['isGoing'],
      checkIn: json['checkIn'],
      checkOut: json['checkOut'],
      panditId: json['pandit_id'],
      pandit:
          json['pandit'] != null ? Pandit.fromJson(json['pandit']) : Pandit(),
      visits: visits,
    );
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    if (this.clientNeed != null) {
      data['clientNeed'] = this.clientNeed.toJson();
    }
    data['quote_details'] = this.quoteDetails;
    data['quote_amount'] = this.quoteAmount;
    data['isCalled'] = this.isCalled;
    data['isChecked'] = this.isChecked;
    data['isAccept'] = this.isAccept;
    data['isGoing'] = this.isGoing;
    data['checkIn'] = this.checkIn;
    data['checkOut'] = this.checkOut;
    if (this.pandit != null) {
      data['pandit'] = this.pandit.toJson();
    }
    if (this.visits != null) {
      data['visits'] = this.visits.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

导入'dart:convert';
导入“包:pandeetap/models/client_need.dart”;
导入“包:pandeetap/models/pandit.dart”;
导入“包:PandeetApp/models/visit.dart”;
导入“包:pandeetap/services/lead.dart”;
班长延伸班长服务{
int-id;
int clientNeedId;
客户需求客户需求;
字符串引用的详细信息;
字符串quoteAmount;
国际被称为;
检查int;
int被接受;
int正在运行;
字符串签入;
字符串校验;
内特潘迪蒂;
潘迪特潘迪特;
列出访问名单;
引导({
这个身份证,
这个,clientNeedId,
这个客户需要,
这是引用的详细信息,
这个.quoteAmount,
这个叫做,
这是我检查过的,
我接受这个,
我要走了,
这个,签入,
这是结帐,
这个,潘迪迪,
这个,潘伟迪,
这个,访问,,
});
Future fetchLeads()异步{
var datas=wait super.fetchDatas();
var dataList=json.decode(数据);
var leads=dataList.map((e)=>Lead.fromJson(e)).toList();
返回引线;
}
factory Lead.fromJson(映射json){
列表访问=列表();
if(json['visions']!=null){
json['visions'].forEach((v){
add(Visit.fromJson(v));
});
}
回程导线(
id:json['id'],
clientNeedId:json['client\u need\u id'],
clientNeed:json['clientNeed']!=null
?ClientNeed.fromJson(json['ClientNeed'])
:ClientNeed(),
quoteDetails:json['quote_details'],
quoteAmount:json['quote_amount'],
isCalled:json['isCalled'],
isChecked:json['isChecked'],
isAccept:json['isAccept'],
isgo:json['isgo'],
签入:json['checkIn'],
签出:json['checkOut'],
panditId:json['pandit_id'],
潘伟迪:
json['pandit']!=null?pandit.fromJson(json['pandit']):pandit(),
访问:访问,
);
}
映射到JSON(){
最终地图数据=新地图();
数据['id']=this.id;
if(this.clientNeed!=null){
data['clientNeed']=this.clientNeed.toJson();
}
数据['quote_details']=this.quoteDetails;
数据['quote'u amount']=此.quoteAmount;
数据['isCalled']=this.isCalled;
数据['isChecked']=this.isChecked;
数据['isAccept']=this.isAccept;
数据['isGong']=this.isGong;
数据['checkIn']=this.checkIn;
数据['checkOut']=this.checkOut;
如果(this.pandit!=null){
data['pandit']=this.pandit.toJson();
}
if(this.visions!=null){
data['vists']=this.visions.map((v)=>v.toJson()).toList();
}
返回数据;
}
}
屏幕部分

FutureBuilder<List<Lead>>(
      future: lead.fetchLeads(),
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          List leads = snapshot.data;
          // print(leads.length); // Data Not Getting Here
          if (leads.length > 0) {
            return dataList(leads);
          } else {
            return Container(
              padding: EdgeInsets.only(top: 200),
              child: Text("You have no clients"),
            );
          }
        } else if (snapshot.hasError) {
          print(snapshot.error);
          return Text("Server is Down now. Try again later");
        }

        return Container(
          padding: EdgeInsets.only(top: 200),
          child: CircularProgressIndicator(
            backgroundColor: Colors.redAccent,
          ),
        );
      },
    );
FutureBuilder(
future:lead.fetchLeads(),
生成器:(上下文,快照){
if(snapshot.hasData){
列表线索=snapshot.data;
//打印(leads.length);//此处未获取数据
如果(引线长度>0){
返回数据列表(leads);
}否则{
返回容器(
填充:仅限边缘设置(顶部:200),
child:Text(“您没有客户”),
);
}
}else if(snapshot.hasrerror){
打印(快照错误);
返回文本(“服务器已关闭,请稍后再试”);
}
返回容器(
填充:仅限边缘设置(顶部:200),
子对象:循环压缩机指示器(
背景颜色:Colors.redAccent,
),
);
},
);

我想这里有问题。我已经完成了我的项目,但这种问题毁了我的项目。我不明白在这个问题上我错在哪里。找不到确切的行号。给出提示,但问题的具体位置不可理解。请尽快帮助我。

不要将快照数据强制转换为列表,而是使用var。请在出现错误之前尝试打印结果,然后继续

FutureBuilder<List<Lead>>(
      future: lead.fetchLeads(),
      builder: (context, snapshot) {
        if (snapshot.hasData) {
          var leads = snapshot.data; // use var instead of List
           // try this in your case it is received as String
           print(leads.runtimeType.toString())
           // if it is string convert to List.
           var leadsJson = jsonDecode(leads)
FutureBuilder(
future:lead.fetchLeads(),
生成器:(上下文,快照){
if(snapshot.hasData){
var leads=snapshot.data;//使用var而不是List
//在您的情况下尝试此操作,它将作为字符串接收
打印(leads.runtimeType.toString())
//如果是字符串,则转换为列表。
var leadsJson=jsonDecode(导线)

感谢您的支持。