在LisvView的cell中调用TouchableOpacity的onPress方法时报错
在LisvView的cell中调用TouchableOpacity的onPress方法时报错的问题。
错误提示(见下图):该方法不是一个function, 这个有点蒙逼了(明明是function)
解决办法:在ListView的renderRow方法中绑定this
renderRow={this.renderRow.bind(this)}
部分源码如下:
render() {
return(
<View style={{flex: 1}}>
<ListView
showsVerticalScrollIndicator={false}
dataSource={this.state.dataSource}
{/*错误的代码:renderRow={this.renderRow}*/}
renderRow={this.renderRow.bind(this)}
renderHeader={this.renderHeader}
></ListView>
</View>
);
}
renderRow(rowData) {
return(
<TouchableOpacity
activeOpacity={0.5}
onPress={()=>{this.showNewsDetailView()}}
>
<View style={styles.newsRowStyle}>
<Image source={{uri: rowData.imgsrc}} style={styles.newsImageStyles}></Image>
<View style={styles.contentStyles}>
<Text style={styles.newsTitleStyles}>{rowData.title}</Text>
</View>
</View>
</TouchableOpacity>
);
}
renderHeader() {
return(
<AdvScrollView></AdvScrollView>
);
}
showNewsDetailView() {
console.log('点击cell')
}
原文:https://blog.csdn.net/wj610671226/article/details/53889379?utm_source=copy