如何在TouchableHighlight的onPress中获取发件人

时间:2015-09-15 09:04:26

标签: react-native

我有一个视图列表,每个视图由TouchableHighlight包装,我为每个Touchable绑定一个onPress处理程序

  ....
  <TouchableHighlight onPress={this._preformTouchItem}>
    <View style={styles.item}>
      <Text>{displayContent}</Text>
    </View>
  </TouchableHighlight>
  ....

_preformTouchItem(event) {
}

我在Chrome开发工具中调试了这个事件&#39;不会绑定发件人&#39;宾语, 如何知道点击了哪个视图

1 个答案:

答案 0 :(得分:5)

在React中,您通常不会直接与视图交互,而是调用setState并让React为您重新呈现UI。例如,您将传递项目的索引:

getInitialState: function() {
  var itemToggleStates = [false, false, false];
  return itemToggleStates;
},

render: function() {
  for (i = 0; i < itemToggleStates.length; i++) { 
    ...
    var currentIndex = i;
    var itemText = this.state.itemToggleStates[currentIndex] ? 'yes' : 'no';
    <TouchableHighlight onPress={() => this._handleItemTouch(currentIndex)}>
      <Text>{itemText}</Text>
    </TouchableHighlight>
    ...
  }
  ...
},

_handleItemTouch: function(index) {
  var itemToggleStates = this.state.itemToggleStates;
  itemToggleStates[index] = !itemToggleStates[index];
  setState(itemToggleStates);
}

在极少数情况下,当您确实需要访问基础视图时,会出现一个名为refs的概念。