开发者问题收集

未处理的拒绝(TypeError):无法访问属性“country”,this.props 未定义

2022-05-10
67

我正在开发一个 React 应用

当通过无限滚动运行此功能时,我会收到错误

Unhandled Rejection (TypeError): can't access property "country", this.props is undefined

async pageUpdater() {
  let url = `https://newsapi.org/v2/top-headlines?country=${this.props.country}&category=${this.props.category}&apiKey=myapi&page=${this.state.page}&pageSize=${this.props.pageSize}`;
  this.setState({ loading: true })
  await fetch(url).then(response => response.json()).then(data => {
    this.setState({ articles: data.articles, totalResults: data.totalResults, loading: false })
  })
}
1个回答

您必须使用箭头函数或需要将 this 与此函数绑定。

JavaScript 具有函数作用域,并且 this 指针在函数作用域上发生更改。

例如-

const pageUpdater = async () => {
 // your code here
}

您还可以在组件构造函数中将 this 与函数绑定。

constructor() {
  this.pageUpdater = this.pageUpdater.bind(this);
}

有关 this 的更多信息,请阅读 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/this

Sajeeb Ahamed
2022-05-10