在React中使用fetch获取ajax数据,如何解决丢失this的问题?

需求是在React中用ajax请求获取响应的数据更新组件的状态,响应数据是一个字符串。
我写的代码如下:

componentWillMount: function() {
  fetch(this.props.url).then(function(text) {
    this.setState({state: text});
  })
}

显然,这样做的话this.setState的this会丢失,导致调用失败。
请问该如何解决这个问题?

阅读 3.8k
4 个回答

箭头函数

componentWillMount() {
  fetch(this.props.url).then((text) => {
    this.setState({state: text});
  })
}

或者 var self = this ;// 早期比较多这用法吧。。。。

闭包和es6箭头函数

可以使es6的箭头函数
()=>{} 箭头函数没有this 会向上查找 就会找到父级的this

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