仅尝试获取所按下的可触摸突出显示的当前索引。由于某种原因,它仅返回数组中的最高数字。有任何想法吗?

render: function() {
    var images = [], i = 0;

    for(i=0; i<this.props.picturesList.length; i++){
        var currentIndex = i;
        images.push(
            <TouchableHighlight
                key={'c' + i}
                onPress={() => this._handleItemTouch(currentIndex)}>
                    <Image
                        style={styles.image}
                        source={{uri: this.props.picturesList[i]}} />
            </TouchableHighlight>
        );
    }
},
_handleItemTouch: function(index) {
  console.log(index);
}

最佳答案

尝试使用let声明currentIndex变量。我将一直递增到数组+ 1中的最后一个值,让我们将变量的范围限定为循环上下文中的值:

for(var i=0; i <this.props.picturesList.length; i++){
        let currentIndex = i;
        images.push(
            <TouchableHighlight
                key={'c' + i}
                onPress={() => this._handleItemTouch(currentIndex)}>
                    <Image
                        style={styles.image}
                        source={{uri: this.props.picturesList[i]}} />
            </TouchableHighlight>
        );
    }
},

我设置了一个演示here

10-06 10:58
查看更多