数値がログに記録される前に行console.logが表示されますが、if文がエラー でエラーになります。this.state.question [i]は未定義です。reactjs、forループの状態で配列を取得しますか?
4時間後に私はなぜ理解できないのですか?
数値がログに記録される前に行console.logが表示されますが、if文がエラー でエラーになります。this.state.question [i]は未定義です。reactjs、forループの状態で配列を取得しますか?
4時間後に私はなぜ理解できないのですか?
あなたquestion
配列1何回も反復されているので、あなたがエラーを取得しています。配列に5つの項目がある場合は、インデックス0,1,2,3,4が必要です。ループには、があるため、インデックス5も読み取ろうとします。代わりにi < this.state.question.length
に変更してみてください。
また、不要なステートを2回設定しているため、必要以上に再レンダリングが発生する可能性があります。代わりに、一時変数を使用してください:
handlePlay = (e) => {
setInterval(function(){
const time = Math.round(e.target.getCurrentTime());
let obj = {currentTime: time}; //temporary variable to build your next state
for(let i = 0;i<=this.state.question.length;i++){
if(time==this.state.question[i].time){
obj.currentQuestion = i; //add stuff to it
}
}
this.setState(obj); //set your final state here
}.bind(this),1000)
}
オハイオ州、私は愚かな間違いを持って、ありがとうございました。あなたは私の一日を救った。 :D –
おそらく '<='の代わりに '
Chris