2017-10-09 29 views
1

私はこのチュートリアル(https://www.turbo360.co/tutorial/audio-streaming-app)に続いて、ユーザーが自分のページに音楽ファイルをアップロードできるようにしています。しかし、ユーザーが最初にサインインしてもファイルがアップロードされないと、私はこのエラーを受け取ります: app.js:67 Uncaught TypeError:未定義の 'forEach'プロパティを読み取ることができません なぜ私はそれを動作させることができないのですか? は、ここに私のコードです:ターボがプロパティを読み取ることができません

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) 
} 

私は、ユーザーがログインする前に、トラック配列を作成しますif文を作成してみましたが、それはうまくいきませんでした。どんな助けもありがとうございます。

+0

のforEachが配列で作業する必要があり、あなたはCurrentUserにして、空の配列を作成する必要があります取得するトラックがない場合はオブジェクト。 –

答えて

0

残りのアプリケーションのコンテキストは十分にわかりませんが、現在のユーザーが存在し、次のブロックに移動するように聞こえますが、トラックキーは存在しません。あなたがこれらのタイプの状況に遭遇したときに、console.logステートメントを置いて、あなたが得るものを見てみることを私が示唆しているもの。すなわち:

するvar renderTracks =機能(){ 場合(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) 

}

関連する問題