我遇到此函数的问题,返回错误:"未捕获的TypeError:storedId.indexOf不是函数。 "我不知道如何摆脱它。最大的问题是,我有这个相同的功能(这个用于电影,另一个用于电视节目),电视节目的一个按预期工作,而这个没有。更糟糕的是,我在我的github repo上有相同的代码,我在那里测试托管网站,它在那里工作得很好,而且字面上的代码相同。甚至尝试复制粘贴整个脚本文件的整个代码,它仍然返回相同的错误。错误开始显示昨天,当我继续" tidy"我的代码作为我的项目完成了99%,只是想完善它,以便我可以开始托管它。我不知道为什么会这样做,所以任何形式的帮助都会有很大的帮助,甚至可以指导你阅读哪些文档...提前致谢。
这是给我错误的函数:
//Add movie to watch list. Bug - > Uncaught TypeError: storedId.indexOf is not a function.
function addToList(id){
let storedId = JSON.parse(localStorage.getItem("movies")) || [];
if(storedId.indexOf(id) === -1){
storedId.push(id);
localStorage.setItem("movies", JSON.stringify(storedId));
//Notification that it will be added to Watchlist.
const added = document.getElementById("added");
added.innerHTML = "Added to watchlist !"
added.classList.add("added");
setTimeout(() => {
added.classList.remove("added");
}, 1500);
} else {
//Notification that it has already been added to the watchlist.
const alreadyStored = document.getElementById("alreadyStored");
alreadyStored.innerHTML = "Already in watchlist !"
alreadyStored.classList.add("alreadyStored");
setTimeout(() => {
alreadyStored.classList.remove("alreadyStored");
}, 1500);
}
}
如果需要,这里是hastebin上的整个脚本文件: https://hastebin.com/licomupere.coffeescript
答案 0 :(得分:0)
我似乎解决了我的问题。似乎我把localStorage卡住了或者它被淘汰了。所以有人建议我做Array.from(storedId)并将其定义为一个变量,所以我做了,那就是unstuck或者本地存储。我然后(联合国)故意为我的系列观察列表做同样的事情,这次发生同样的错误时,我只是从F12中清除了会话和本地存储 - >应用。现在一切正常,所以如果有人碰巧遇到类似的情况,请尝试这个选项。