gpt4 book ai didi

javascript - "The keyPath option is not a valid key path"尝试用变量分配 keyPath

转载 作者:行者123 更新时间:2023-11-30 20:02:16 25 4
gpt4 key购买 nike

我有一些 JSON 看起来像这样,它被声明为一个名为“jsonObjSuper”的变量:

{
"Watchlist": "My Watchlist",
"Instruments": {
"instrument1": [
"Company ABC",
[
{
"snapshotTimeUTC": "2018-11-01T00:00:00",
"snapshotTime": "2018/11/01 00:00:00"
}
]
],
"instrument2": [
"Company XYZ",
[
{
"snapshotTimeUTC": "2018-11-01T00:00:00",
"snapshotTime": "2018/11/01 00:00:00"
}
]
]
}
}

我正在尝试使用“监视列表”为 IndexedDB 分配一个 keyPath - 代码如下:

request.onupgradeneeded = function(event) {
var db = event.target.result;
var key = jsonObjSuper["Watchlist"]
var objectStore = db.createObjectStore("instruments", { keyPath: key});
}

但是当我尝试这个时,我得到了这个错误:

“未捕获的 DOMException:无法在‘IDBDatabase’上执行‘createObjectStore’:keyPath 选项不是有效的 key 路径。”

如果我对“key”变量执行 console.log,则提取的值如预期的那样是“My Watchlist”。

我也曾尝试对“key”变量进行 JSON.stringify 以查看是否有所不同,但仍然出现错误。

可能是什么原因造成的?

非常感谢

最佳答案

鉴于您的代码:

var key = jsonObjSuper["Watchlist"]
var objectStore = db.createObjectStore("instruments", { keyPath: key});

和数据定义:

jsonObjSuper = {
"Watchlist": "My Watchlist",
...
}

你正在有效地做:

db.createObjectStore("instruments", { keyPath: "My Watchlist"});

"My Watchlist" 不是有效的 key 路径。对象存储的关键路径必须是一个字符串,它是一个有效的 JS 标识符或一个点分隔的标识符序列或一个空字符串,或者一个或多个先前的数组。 (有关精确定义,请参阅 https://w3c.github.io/IndexedDB/#key-path-construct。)因此 "My_Watchlist" 有效,但 "My Watchlist" 无效。

关于javascript - "The keyPath option is not a valid key path"尝试用变量分配 keyPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com