React Native学习笔记之--在LisvView的cell中调用TouchableOpacity的onPress方法时报错

来源:互联网 发布:软件著作权申请表下载 编辑:程序博客网 时间:2024/05/01 09:02

React Native学习笔记之–在LisvView的cell中调用TouchableOpacity的onPress方法时报错

最近一直在出差中,对于React Native的学习又暂停了一段时间,今天记录一下自己在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')    }
0 0
原创粉丝点击