只是尝试获取按下的可触摸突出显示的当前索引。由于某种原因,它只返回数组中的最大数字。有什么想法吗?
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);
}
答案 0 :(得分:6)
尝试使用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。