Javascript Turbo无法读取未定义的属性
根据本教程()我正在制作一个音频流站点,允许用户将音乐文件上传到他们的页面。但是,当用户首次登录时,没有上载任何文件,我会遇到以下错误: app.js:67未捕获类型错误:无法读取未定义的属性“forEach” 有人知道我为什么不能让它工作吗? 这是我的密码:Javascript Turbo无法读取未定义的属性,javascript,html,Javascript,Html,根据本教程()我正在制作一个音频流站点,允许用户将音乐文件上传到他们的页面。但是,当用户首次登录时,没有上载任何文件,我会遇到以下错误: app.js:67未捕获类型错误:无法读取未定义的属性“forEach” 有人知道我为什么不能让它工作吗? 这是我的密码: var renderTracks = function(){ if (currentUser == null) return var tracksList = '' currentUser
var renderTracks = function(){
if (currentUser == null)
return
var tracksList = ''
currentUser.tracks.forEach(function(track, i){
tracksList += '<tr><td style="width:130px"><a
target="_blank" href="' + track.url + '"><img
src="/dist/images/playbutton.png" alt="..." /></a></td>'
tracksList += '<td><h5><a target="_blank" href="' +
track.url + '">' + track.name + '</a></h5><p>Uploaded: '
+ track.timestamp + '</p></td>'
tracksList += '<td><h4 class="price">$40</h4></td></tr>'
})
$('#tracks-table').html(tracksList)
}
var renderTracks=function(){
if(currentUser==null)
返回
var tracksList=''
currentUser.tracks.forEach(函数(track,i){
tracksList+=“”
tracksList+='上传:'
+track.timestamp+“”
tracksList+=“$40”
})
$('#tracks table').html(tracksList)
}
我尝试创建一个if语句,在用户登录之前创建一个跟踪数组,但没有成功。非常感谢您的帮助。我对应用程序其余部分的上下文了解不够,但听起来好像有一个currentUser存在,您可以进入下一个区块,但tracks键不存在。当您遇到这些类型的情况时,我的建议是,只需放置一个console.log语句,看看您得到了什么;i、 e: var renderTracks=函数(){ if(currentUser==null) 返回
var tracksList = ''
console.log(JSON.stringify(currentUser))
currentUser.tracks.forEach(function(track, i){
tracksList += '<tr><td style="width:130px"><a
target="_blank" href="' + track.url + '"><img
src="/dist/images/playbutton.png" alt="..." /></a></td>'
tracksList += '<td><h5><a target="_blank" href="' +
track.url + '">' + track.name + '</a></h5><p>Uploaded: '
+ track.timestamp + '</p></td>'
tracksList += '<td><h4 class="price">$40</h4></td></tr>'
})
$('#tracks-table').html(tracksList)
var tracksList=''
console.log(JSON.stringify(currentUser))
currentUser.tracks.forEach(函数(track,i){
tracksList+=“”
tracksList+='上传:'
+track.timestamp+“”
tracksList+=“$40”
})
$('#tracks table').html(tracksList)
}我对应用程序其余部分的上下文了解不够,但听起来好像有一个currentUser存在,您可以进入下一个块,但tracks键不存在。当您遇到这些类型的情况时,我的建议是,只需放置一个console.log语句,看看您得到了什么;i、 e: var renderTracks=函数(){ if(currentUser==null) 返回
var tracksList = ''
console.log(JSON.stringify(currentUser))
currentUser.tracks.forEach(function(track, i){
tracksList += '<tr><td style="width:130px"><a
target="_blank" href="' + track.url + '"><img
src="/dist/images/playbutton.png" alt="..." /></a></td>'
tracksList += '<td><h5><a target="_blank" href="' +
track.url + '">' + track.name + '</a></h5><p>Uploaded: '
+ track.timestamp + '</p></td>'
tracksList += '<td><h4 class="price">$40</h4></td></tr>'
})
$('#tracks-table').html(tracksList)
var tracksList=''
console.log(JSON.stringify(currentUser))
currentUser.tracks.forEach(函数(track,i){
tracksList+=“”
tracksList+='上传:'
+track.timestamp+“”
tracksList+=“$40”
})
$('#tracks table').html(tracksList)
}forEach需要数组才能工作,如果没有任何轨迹可获取,则应在currentUser对象中创建空数组。forEach需要数组才能工作,如果没有任何轨迹可获取,则应在currentUser对象中创建空数组。