如何在handleDeepLink中获取"this"?



我在我的应用程序中使用反应原生链接。

class AudioExample extends Component {
    componentDidMount(){
        Linking.addEventListener('url', this.handleDeepLink);
    }
    handleDeepLink(e){
        console.log(e.url);
        this.setState({url: e.url});  // Doesn't work here, because this it is not AudioExample class!!
    }    
}

我如何使用this.setState({url: url}(; in handleDeepLink??

一种选择是将上下文与 Function.prototype.bind 显式绑定:

componentDidMount(){
    Linking.addEventListener('url', this.handleDeepLink.bind(this));
}

另一种是使用箭头功能:

componentDidMount(){
    Linking.addEventListener('url', event => this.handleDeepLink(event));
}

实际上还有更多的方法,但这是最好的两种。

您可能需要

将函数绑定到此对象

    constructor(props){
     super(props)
     this.handleDeepLink = this.handleDeepLink.bind(this)
}

相关内容

  • 没有找到相关文章