' 不是类型 'Map 的子类型',android,ios,dart,flutter"/>

首页 > 解决方案 > 颤振 - SQflite '_InternalLinkedHashMap' 不是类型 'Map 的子类型'

问题描述

我正在尝试在 sqflite 数据库中保存一些带有颤动的数据,但我仍然收到一条错误消息:

[ERROR:flutter/shell/common/shell.cc(181)] Dart Error: Unhandled
exception:
    type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Map<String, dynamic>'

该错误表示该错误在此函数内部:

Future<RecipesDB> insertRecipe(RecipesDB recipe) async{
    var count = Sqflite.firstIntValue(await _db.rawQuery("SELECT COUNT(*) FROM recipes WHERE name = ?", [recipe.name]));
    if(count == 0){
      recipe.id = await _db.insert("recipes", recipe.toMap()); //"toMap()" function returns the error;
    } else {
      await _db.update("recipes", recipe.toMap(), where: "id = ?", whereArgs: [recipe.id]);
    }
    return recipe;
  }

recipe.toMap()指向我的班级:

import 'dart:convert';

class RecipesDB{
  RecipesDB();

  int id, favorite;
  double workDuration;
  String name, definition, timestamp;

  static final columns = ["id", "name", "definition","duration", "favorite", "timestamp"];

  Map toMap(){
    Map map = {
      "name": name,
      "definition": definition,
      "favorite": favorite,
      "duration": workDuration,
      "timestamp": timestamp
    };

    if(id != null){
      map["id"] = id;
    }

    return map;
  }

  static fromMap(Map map){
    RecipesDB recipes = new RecipesDB();

    recipes.id = map["id"];
    recipes.name = map["name"];
    recipes.definition = map["definition"];
    recipes.workDuration = map["duration"];
    recipes.favorite = map["favorite"];
    recipes.timestamp = map["timestamp"];

    return recipes;
  }

}

我不知道如何解决这个错误。如果你们当中有人能救我,那就太好了。

提前谢谢XD!

标签: androidiosdartflutter

解决方案


改变

Map toMap(){
  Map map = {

Map<String,dynamic> toMap(){
  Map<String,dynamic> map = {

推荐阅读