我从indexeddb获取数据,使用jsstore.I得到响应的类。但是得到了 “无法在'IDBKeyRange'上执行''':参数不是有效的密钥。”控制台错误。为什么我收到此错误。任何人都可以帮助我。
//Get DBSchema(table & columns)
private getDbSchema = function () {
const tblArticle = {
Name: this._indexedDBLiveDBTableName,
Columns: [
{
Name: 'ParentName',
NotNull: true,
DataType: 'string'
},
{
Name: 'ChildName',
NotNull: true,
DataType: 'string'
}
,
{
Name: 'UpdatedDate',
NotNull: true,
DataType: 'string'
}
]
};
const Database = {
Name: this._indexedDBLiveDBName,
Tables: [tblArticle]
};
return Database as any;
};
//Fetch articles From IndexedDB
GetArticleFromIndexedDb(section) {
this._connection.openDb(this._indexedDBLiveDBName);
return this._connection.select({
From: this._indexedDBLiveDBTableName,
Where: {
ChildName: section
}
});
}
部分的价值将像“印度”,“泰米尔纳德”
请找到附带的错误屏幕截图
我正在使用 jsstore 1.3.0
我将jsstore版本更新为1.4.1,它给出了“超出最大调用堆栈大小”
由于
答案 0 :(得分:3)
这是由于提供的值无效。 IndexedDB支持值列表 - 数字,日期,字符串,二进制数据,数组:这些是有效键。
当您传递boolean,null或undefined值时,通常会抛出此错误。
查看w3c了解更多信息 - https://w3c.github.io/IndexedDB/#key-construct
答案 1 :(得分:0)
对于遇到相同问题并且实际上正在传递有效密钥的其他任何人,实际上可能是您正在运行。
objectStore.put(key, value)
什么时候应该跑步
objectStore.put(value, key)
与规格相反。