我在React Native中創建了一個應用程序,我遇到了一個我不明白的問題。TouchableHighlight OnPress不調用函數
事實上,當我按我的名單上的按鈕,與此相關的按鈕onPress財產不叫我的功能。
_onPressButton=() => {
Alert.alert("Lol");
}
_renderRow (rowData, sectionID) {
return (
<TouchableOpacity style={styles.row} onPress={() => this._onPressButton}>
<Text style={styles.boldLabel}>{rowData.name}</Text>
<Text style={styles.label}>{rowData.art}</Text>
</TouchableOpacity>
)
}
這兩個函數在我的類中,在render()之外。還有就是渲染:
render() {
return (
<View style={styles.container}>
<ListView
renderSectionHeader={this._renderHeader}
contentContainerStyle={styles.listContent}
dataSource={this.state.dataSource}
renderRow={this._renderRow}
renderFooter={this._renderFooter}
enableEmptySections
pageSize={15}
/>
</View>
)
}
}
所以,當我按下按鈕,沒有任何反應:/。有人有想法嗎? 感謝您的閱讀!
呀它幫助的感謝!但顯然我必須在渲染中寫renderRow = {this._renderRow.bind(this)}。你知道爲什麼嗎? –
從jsx調用它時,「this」關鍵字的上下文丟失,因此您必須將其綁定。 我將在構造 this._renderRow = this._renderRow.bind建議結合功能(本); 或者像使用_onPressButton一樣使用箭頭函數。 –
非常感謝! –