简体   繁体   English

从 flutter mysql 数据库中提取数据时出现转换错误。 我该如何解决?

[英]I am getting cast error while pulling data from flutter mysql database. How can I fix?

There is a flutter application that I wrote below.我在下面写了一个 flutter 应用程序。 I'm trying to connect to mysql database and pull data with api, but every time I try, I get an error like the following.我正在尝试连接到 mysql 数据库并使用 api 提取数据,但每次尝试时,都会出现如下错误。 The model codes to which it is linked are also available below.它链接到的 model 代码也可以在下面找到。 NoSuchMethodError (NoSuchMethodError: Class '_InternalLinkedHashMap<String, dynamic>' has no instance method 'cast' with matching arguments. Receiver: _LinkedHashMap len:3 Tried calling: cast<Map<String, dynamic>>() Found: cast<Y0, Y1>() => Map<Y0, Y1>) I am getting this error. NoSuchMethodError (NoSuchMethodError: Class '_InternalLinkedHashMap<String, dynamic>' 没有匹配 arguments 的实例方法 'cast'。接收方:_LinkedHashMap len:3 尝试调用:cast<Map<String, dynamic>>() 发现:cast<Y0, Y1>() => Map<Y0, Y1>) 我收到这个错误。 How can I fix.我该如何解决。


import 'package:dbconnecttest/data.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: main1(),
    );
  }
}

class main1 extends StatefulWidget {
  main1({Key? key}) : super(key: key);

  @override
  State<main1> createState() => _main1State();
}

class _main1State extends State<main1> {
  Future<List<data>>? futuredata;
  @override
  void initState() {
    // TODO: implement initState
    futuredata = fetchPost();
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Fake Friends"),
        backgroundColor: Colors.green,
      ),
      body: FutureBuilder<List<data>>(
        future: futuredata,
        builder: (context, snapshot) {
          if (snapshot.hasData) {
            return ListView.builder(
              itemCount: snapshot.data!.length,
              itemBuilder: (_, index) => Container(
                child: Text("${snapshot.data![index].autid}"),
              ),
            );
          } else {
            return Center(child: CircularProgressIndicator());
          }
        },
      ),
    );
  }
}

Future<List<data>> fetchPost() async {
  final response =
      await http.get(Uri.parse('http://192.168.1.108/server/data.php'));

  if (response.statusCode == 200) {
    final parsed = json.decode(response.body).cast<Map<String, dynamic>>();

    return parsed.map<data>((json) => data.fromJson(json)).toList();
  } else {
    throw Exception('Failed');
  }
}


import 'dart:convert';

List<data> postFromJson(String str) =>
    List<data>.from(json.decode(str).map((x) => data.fromJson(x)));

class data {
  int? id;
  String? autid;
  String? status;
  String? startdate;
  String? finishdate;

  data(
      {required this.id,
      required this.autid,
      required this.status,
      required this.startdate,
      required this.finishdate});

  data.fromJson(Map<String, dynamic> json) {
    id = json['id'];
    autid = json['autid'];
    status = json['status'];
    startdate = json['startdate'];
    finishdate = json['finishdate'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['id'] = this.id;
    data['autid'] = this.autid;
    data['status'] = this.status;
    data['startdate'] = this.startdate;
    data['finishdate'] = this.finishdate;
    return data;
  }
}

在此处输入图像描述

Try this尝试这个

Map<String, dynamic>.from(data)

在此处输入图像描述

of course i can share.我当然可以分享。 this is my flutter doctor这是我的 flutter 医生

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用来自mySQL数据库的数据填充Google折线图。 (单个文件/内联解决方案) - How can I populate Google line chart with data from mySQL database. (single file / Inline solution) 我正在尝试从mysql数据库中获取发布数据。 但是循环永远运行。 为什么? - I am trying to fetch post data from mysql database. But the loop is running forever. Why? 尝试从 MySql 中的数据库检索数据时出现“java.lang.ClassNotFoundException: com.mysql.jdbc.Driver”错误 - I am getting " java.lang.ClassNotFoundException: com.mysql.jdbc.Driver " error while trying to retrieve data from the database in MySql 我在使用 python 将实时数据拉入 mysql 数据库时抓取实时数据时遇到错误(TypeError: not enough arguments for format string) - I'm getting an error when scraping real-time data while pulling it into mysql database with python (TypeError: not enough arguments for format string) 如何从 mysql 数据库检索数据到 flutter 应用程序? - How can I retrive data from mysql database to flutter application? 我从2个数据库请求数据。 如何将代码合并到一个函数中? - I have request data from 2 database. How can I merge code to one function? 为什么在尝试使用 Linux 中的 bash 脚本从 MySQL db 检索数据时出现此错误? - Why am I getting this error while trying to retrieve data from MySQL db using bash script in Linux? 如何使用 flask 应用程序中的 MySQL 将用户输入的数据存储在我的数据库中。 我收到一个错误 - How to store data in my database from a user Input using MySQL in flask app. I am getting an Error 从html页将数据插入数据库表时出现错误 - i am getting error while inseting data into my database table from html page 处理来自网站的 json 数据并将其添加到 mysql 数据库时出现错误 - i am getting a error when processing json data from a website and adding it to a mysql database
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM