首页 > 解决方案 > Uncaught (in promise) TypeError: Cannot read property 'map' of undefined - 但它以前工作正常吗?

问题描述

突然得到“Uncaught (in promise) TypeError: Cannot read property 'map' of undefined”,尽管到目前为止代码一直运行良好。

这是我正在尝试使用的 fetch 函数:

document.getElementById("getAllJokes").addEventListener("click", function (event) {
event.preventDefault();
    fetch(url + 'all')
        .then(res => res.json()) 
        .then(data => {
             //console.log("data", data);
             document.getElementById("jokeTable").innerHTML = html+makeTableAllJokes()(data); //Renders joke table
             //console.log(makeTable(data));
        });
});

这是地图功能:

  function makeTableAllJokes(data) {
    createTable = data.map(function (e) {
            return (
                `<tr><td>
                ${e.id} 
                </td><td> 
                ${e.joke}
                </td><td>
                ${e.topic} 
                </td>`
            );
        }).join(" ");
        
    return createTable;
}

标签: javascriptfetch

解决方案


您传递的参数应该在括号内:

改变这个:

makeTableAllJokes()(data)

至:

makeTableAllJokes(data)

推荐阅读