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

标签 javascript reactjs state setstate jsonapi-resources

我试图在 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/

相关文章:

javascript - jquery - 检查特定输入是否为空值,并仅将类添加到那些空输入

javascript - ReactQuill - 如何设置占位符属性的样式?

java - 如何回退应用程序状态?

javascript - 将 props/state 传递给父组件/从父组件传递

javascript - 如何在javascript中制作完整的图像路径

javascript - IE 10,除非控制台打开,否则我的 js 会损坏

javascript - Div 显示隐藏选择

javascript - React Native - iOS - 本地镜像不可见(适用于 android)

javascript - 当我将状态保存到变量时会发生什么?

javascript - 为什么 React-app 状态没有在这里重新渲染?如何让状态及时更新