获得" Uncaught TypeError"在一个函数上,而另一个函数正常工作

时间:2018-06-12 16:14:29

标签: javascript typeerror

我遇到此函数的问题,返回错误:"未捕获的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

1 个答案:

答案 0 :(得分:0)

我似乎解决了我的问题。似乎我把localStorage卡住了或者它被淘汰了。所以有人建议我做Array.from(storedId)并将其定义为一个变量,所以我做了,那就是unstuck或者本地存储。我然后(联合国)故意为我的系列观察列表做同样的事情,这次发生同样的错误时,我只是从F12中清除了会话和本地存储 - >应用。现在一切正常,所以如果有人碰巧遇到类似的情况,请尝试这个选项。