gpt4 book ai didi

javascript - 通过 API 响应过滤后,将 setState 读取为未定义

转载 作者:行者123 更新时间:2023-11-28 11:00:48 24 4
gpt4 key购买 nike

我试图在 React 中过滤对某些新闻项的 api 响应,但是当我调用 setState 函数时,我的控制台抛出错误,指出它无法 setState of property undefined。我是 React 新手,所以如果这是一个明显的修复,请原谅。

    class LeagueTables extends Component {
constructor(props) {
super();
this.state = {
sportsNewsFiltered: []
};
this.mountNews = this.mountNews.bind(this);
}
mountNews() {
var tempArr = [];
var urlNews =
"https://newsapi.org/v2/top-headlines?sources=bbc-
sport&apiKey=" + SECRETS.API_KEY;
var reqNews = new Request(urlNews);
fetch(reqNews)
.then(response => response.json())
.then(function(json) {
for (var i = 0; i < json.articles.length; i++) {
if (json.articles[i].url.includes("football")) {
tempArr.push(json.articles[i]);
}
}
})
.then(function() {
this.setState({
sportsNewsFiltered: tempArr
});
});
}
componentDidMount() {
this.mountNews();
}

最佳答案

您将失去此上下文,因此请将其更改为箭头函数

  .then(() => {
this.setState({
sportsNewsFiltered: tempArr
});
});

关于javascript - 通过 API 响应过滤后,将 setState 读取为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52681243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com