我如何解决TypeError:undefined不是对象(正在评估'rss.items [0] .title')

问题描述 投票:0回答:1

在大多数情况下,它没有错误运行,但是有时候,它根本不运行并显示:我如何解决TypeError:undefined不是对象(评估'rss.items [0] .title' )

这是我的代码,我使用react-native-rss-parserhttps://www.npmjs.com/package/react-native-rss-parser)解析我的rss feed:

class HomeScreen extends React.Component {
  state = {
    feed: [],
    title0: [],
    title1: []
  };

  componentDidMount() {
    return fetch("https://vnexpress.net/rss/tin-moi-nhat.rss")
      .then(response => response.text())
      .then(responseData => rssParser.parse(responseData))
      .then(rss => {
        this.setState(prevState => ({
          ...prevState,
          feed: rss,
          title0: rss.items[0].title,
          title1: rss.items[1].title
        }));
      });
  }

  render() {
    const Feeds = shuffleArray([
      {
        pic: require("../assets/images/image.jpg"),
        title: Object.keys(this.state.title0).map(k => this.state.title0[k]),
        caption: "caption"
      },
      {
        pic: require("../assets/images/image.jpg"),
        title: Object.keys(this.state.title1).map(k => this.state.title1[k]),
        caption: "caption"
      }
    ]);

    return (
      <SafeAreaView>
        <Swiper
          cards={Feeds}
          renderCard={Card}
          infinite 
          backgroundColor="white"
          cardHorizontalMargin={0}
          stackSize={2} 
        />
      </SafeAreaView>
    );
  }
}

const Card = ({ pic, title, caption }) => (
  <Tile
    imageSrc={pic}
    activeOpacity={1}
    title={title}
    caption={caption}
    featured
    key={title}
  />
);

export default HomeScreen;

UPDATE

Console.log(rss)结果(它确实包含项目):

Object {
  "authors": Array [],
  "categories": Array [],
  "copyright": undefined,
  "description": "VnExpress RSS",
  "image": Object {
    "description": undefined,
    "height": undefined,
    "title": "Tin nhanh VnExpress - Đọc báo, tin tức online 24h",
    "url": "https://s.vnecdn.net/vnexpress/i/v20/logos/vne_logo_rss.png",
    "width": undefined,
  },
  "items": Array [],
  "itunes": Object {
    "authors": Array [],
    "block": undefined,
    "categories": Array [],
    "complete": undefined,
    "explicit": undefined,
    "image": undefined,
    "newFeedUrl": undefined,
    "owner": Object {
      "email": undefined,
      "name": undefined,
    },
    "subtitle": undefined,
    "summary": undefined,
  },
  "language": undefined,
  "lastPublished": "Sat, 30 Nov 2019 21:28:12 +0700",
  "lastUpdated": undefined,
  "links": Array [
    Object {
      "rel": "",
      "url": "https://vnexpress.net/rss/tin-moi-nhat.rss",
    },
  ],
  "title": "Tin mới nhất - VnExpress RSS",
  "type": "rss-v2",
}
javascript react-native rss typeerror rss-reader
1个回答
0
投票

您无法访问rss.items [0] .title,因为rss.items [0]未定义只需添加类似的支票,然后再尝试获取标题

 componentDidMount() {
    return fetch("https://vnexpress.net/rss/tin-moi-nhat.rss")
      .then(response => response.text())
      .then(responseData => rssParser.parse(responseData))
      .then(rss => {
        this.setState(prevState => ({
          ...prevState,
          feed: rss,
          title0: rss.items[0]? rss.items[0].title:'',
          title1: rss.items[1]? rss.items[1].title:''
        }));
      });
  }
© www.soinside.com 2019 - 2024. All rights reserved.