Javascript 未捕获(承诺中)类型错误:无法读取属性';地图';未定义的-但它以前工作正常?
突然出现“Uncaught(in promise)TypeError:无法读取未定义的属性‘map’”,即使代码到目前为止工作正常 这是我尝试使用的获取函数:Javascript 未捕获(承诺中)类型错误:无法读取属性';地图';未定义的-但它以前工作正常?,javascript,fetch,Javascript,Fetch,突然出现“Uncaught(in promise)TypeError:无法读取未定义的属性‘map’”,即使代码到目前为止工作正常 这是我尝试使用的获取函数: document.getElementById("getAllJokes").addEventListener("click", function (event) { event.preventDefault(); fetch(url + 'all') .then(res =
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;
}
函数makeTableAllJones(数据){
createTable=data.map(函数(e){
返回(
`
${e.id}
${e.joke}
${e.topic}
`
);
}).加入(“”);
返回createTable;
}
您传递的参数应该在括号内:
更改此项:
makeTableAllJokes()(data)
致:
试试这个:
document.getElementById(“JoketTable”).innerHTML=html+makeTableAllJokes(数据);
这行代码的编写方式就好像
makeTableAllChakes
函数返回一个以数据为参数的函数,但事实并非如此,因为它直接获取参数,而不是通过返回的函数获取参数。完全忽略了这一点!非常感谢。这是一个小组项目,所以我没有注意到有人添加了这个。我刚意识到它不工作了,哈哈。它现在按预期工作了!kmgt的解决方案奏效了。我不知何故错过了额外的()如果这是一个小组项目,我建议为您的代码设置一些样式指南,并在每个任务完成后对您的代码进行同行评审。这是很多可以避免的问题。另外,请确认我或其他答案的答案,以便人们知道问题已经得到了回答
makeTableAllJokes(data)