首次点击不会触发警报

时间:2015-10-18 09:45:40

标签: javascript

看看这个简单的功能:

handleEventClick(i){  
   this.setState({choosenDriver: this.state.drivers[i]});
   alert(i);
   for (let ix in this.state.choosenDriver.cars) {
   alert(ix);               
    }
 }

我期望发生的是,当我点击时,alert(i)alert(ix)都会被触发。

出于某种原因,alert(ix)在第一次点击时不会触发,但在第二次点击时应该正常工作。 alert(i)但是可以正常工作。

有人可以解释一下吗? 谢谢!

更新

比你们两个都回答。我确定你已经解释了这个问题,但我仍然不明白。

现在我试试这个:

handleEventClick(i){
   this.setState({choosenDriver: this.state.drivers[i]});
   let a = this.state.choosenDriver.cars;

   Array.prototype.forEach.call(a, function(child) {
    // Do something with `child`
   alert(child);
});

首次点击时会产生以下错误:

Uncaught TypeError: Array.prototype.forEach called on null or undefined

但我在第一行定义了choosenDriver BEFORE循环通过它,所以我不明白为什么会出现这个错误。

0 个答案:

没有答案
相关问题