2017-08-03 92 views
0

我有一个Component看起来像这样:附加功能来的onClick()/ onPress()

export default class List extends Component { 
    constructor(props) { 
    super(props); 
    } 

_onPress = (key) => { 
    alert(key); 
    } 

_createList =() => { 
    const list = Object.keys(this.state.obj).map((key, index) => { 
     return (
     <TouchableHighlight 
      key = {index} 
      style = {style.container} 
      onPress = {this._onPress(key)} 
      > 
      <Text>{key}</Text> 
     </TouchableHighlight> 
     ) 
    }); 
     return list; 
    } 

    render() { 
    const listview = this._createList(); 
    return (
     <View> 
     {listview} 
     </View> 
    ) 
    } 
} 

鄂启动我得到三个alerts(每个键/值对我的对象)。预期这种行为。但是,当我点击其中一个Texts/Touchables时,我没有收到alert。这是为什么?

回答

0

试试这个。

onPress = {() => this._onPress(key) } 

onPress = {this._onPress(key)},onPress结合_onPress函数调用的结果,即等于未定义。

1

你必须通过回调,而不是回调结果。

onPress = {event => this._onPress(key)}