2017-08-03 82 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)}