android - 颤振 - 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!
解决方案
改变
Map toMap(){
Map map = {
至
Map<String,dynamic> toMap(){
Map<String,dynamic> map = {
推荐阅读
- python - 如何为每个页面抓取多个页面和不同的项目?
- ros - PointCloud2的内容是什么?
- c# - 如何让 xaml 热重载适用于 WPF 中的自定义类型
- sql - 如何在 flink 程序中加载 udf jar
- unity3d - 是否可以在不使用 Unity 编辑器的情况下以编程方式完成所有编码?
- java - 错误:java.lang.RuntimeException:java.lang.ClassNotFoundException:找不到类 WordCountExample$Map
- php - 如何构建 Eloquent 查询来检索主表的记录,在 Laravel 5 PHP 的相关表上应用 where 子句?
- php - 如何通过 PHP 为 Imagick 标题的文本和背景着色
- macos - 2019 年更新 Mac OS 后如何将 intellij 键盘映射修复为旧键盘映射?
- angular - 将 HttpClient 响应转换为布尔值