ES6下的点击事件一直报错



  • 新手,刚接触RN,这边有照着ES5转ES6的方法处理点击事件,但是点击了就是一直没效果,这回事什么原因导致的呢? 绑定的话是有绑定的。 在ES5是可以实现效果的,但是在ES6上就无效了。

    点击初始化:
    <TouchableOpacity
    activeOpacity={0.5}
    onPress={this.pressedToDetail}

    在state中绑定:
    constructor(props) {
    super(props)
    this.pressedToDetail = this.pressedToDetail.bind(this);
    this.state={
    dataSource:new ListView.DataSource({rowHasChanged:(r1,r2) => r1 !==r2})
    };
    }

    对应的点击方法:
    pressedToDetail(){
    console.log('12312');
    }



  • 直接用箭头函数试试


  • administrators

    你贴出来的代码没有问题
    我怀疑是不是Touchable放在renderRow中?renderRow也是需要绑定this的



  • @晴明 你好,谢谢了,确实是renderRow没绑定,看样子是自定义的方法都需要绑定了? 我再研究研究,谢谢了。



  • @fallice 你好,谢谢了,箭头函数可以了,this.renderRow这方法没用箭头函数的样式处理所以导致出错了,改了试下可以了,谢谢了。


登录后回复