无法在类组件中设置状态,未捕获的类型错误:无法读取未定义的属性(读取"setState")



在使用react classcomponent时,我无法在状态部分设置状态,我试图从API设置一个数字和一个数组,我无法设置两者,数字也显示未定义。

api中也没有错误,如果我尝试console.log它,它工作得很好。请帮我解决这个问题。

import React, { Component } from "react";
import RSSParser from "rss-parser";
class BlogFeed extends Component {
  constructor(props) {
    super(props);
    this.state = { 
      number: 0,
      items:[],
      feed:[]
    };
    this.makeTimer();
  }
  makeTimer() {
    setInterval(() => {
      let rand = Math.floor(Math.random() * 10) + 1;
      this.setState({ number: rand });
    }, 1000);
  }
  componentDidMount = () =>{
    let parser = new RSSParser();
    parser.parseURL(`https://7targets.ai/blog/feed.xml`, function (err, feed) {
      if (err) throw err;
      this.setState({items : feed.items});
    });
  }
  render() {
    console.log(this.items)
    return (
      <div>
        <h1>Random Number :{this.state.items[this.state.number]}</h1>
      </div>
    );
  }
}
export default BlogFeed;

你把箭头函数和正则函数混在一起了。

修复componentDidMount:

 componentDidMount = () =>{
    let parser = new RSSParser();
    parser.parseURL(`https://7targets.ai/blog/feed.xml`, (err, feed) => {
                                                      // ^---turn it into arrow fn
      if (err) throw err;
      this.setState({items : feed.items});
    });
  }

最新更新