首页 > 解决方案 > TypeError:无法读取未定义的属性“textContent”

问题描述

我收到此错误:

TypeError: Cannot read property 'textContent' of undefined

我知道 for 循环在responseDocumentis still时执行undefined。我怎么解决这个问题?

export default class App extends Component {

  constructor() {
    super();

    this.state = {
      newsFeed: {
        number: null,
        date: null,
        news: null,
      },
    };
  }

  fetchRssFeed() {

    const proxyUrl = 'https://cors-anywhere.herokuapp.com/';
    const funkyGamesRssFeed = 'https://funkygames.de/rss.xml';
    const request = new Request(proxyUrl + funkyGamesRssFeed);

    return fetch(request).then((results) => {
      results
        .text()
        .then((str) => {
          let responseDocument = new DOMParser().parseFromString(str, 'application/xml');
          const newsItems = responseDocument.getElementsByTagName('item');

          let newsFeed = {
            number: newsItems.length,
            date: new Date(),
            news: [],
          };

          for (let i = 1; i < newsItems.length; i++) {

            let article = new Article();
            article.title = responseDocument.getElementsByTagName('title')[i].textContent;
            
            newsFeed.news.push(article);
          }

        }).catch((error) => console.log(error));
    });

  }

  componentDidMount() {
    this.fetchRssFeed().catch(e => console.log(e.message));
  }

标签: javascriptreactjsundefined

解决方案


当我这样做时,它对我有用:

for (let i = 1; i < newsItems.length; i++) {

        let article = new Article(
          responseDocument.getElementsByTagName('title')[i].textContent,
         );

        newsFeed.news.push(article);
      }

推荐阅读