这段代码为什么会报错?

class ImportantNews extends Component {
    show: function(title) {
        alert(title);
    },
    render: function() {
        var news = [];
        for (var i in this.props.news) {
            var text = ( < Text style = {
                    styles.news_list_item
                }
                onPress = {
                    this.show.bind(this,
                        this.props.news[i]
                    )
                }
                numberOfLines = {
                    1
                } > {
                    this.props.news[i]
                } < /Text>
            );
            news.push(text);
        }
        return (
            <View style={styles.news_list}>
                <Text style={styles.news_title}>今日要闻</Text>
                {news}
            </View>
        );
    }
}

图片描述

报错的提示是:

图片描述

看描述应该就是show()方法那里报错的呀,为啥会报错呢,不加onPress属性和show()方法就不会报错,加上就报错,哪儿错了?找了半天了!

阅读 2.2k
2 个回答

没看明白你这代码到底是几个意思,你那个onPress肯定会出问题啊——你那是个方法吗?如果方法有这样写的吗?就算是一个方法,你那this指针也会出问题吧,一点一点问题解决了来吧,我只看到这里有问题

新手上路,请多包涵
onPress = {() => this.show.bind(this,this.props.news[i])}

改为箭头函数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题