未处理的拒绝(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