我想在 React Native 中从 RSS 获取按发布日期排序的数据

I want to get the data sorted by publish date from RSS in react native

我想在 React Native 中从 RSS 获取按发布日期排序的数据

我使用了这个代码:

fetch('url here')
  .then((response) => response.text())
  .then((responseData) => rssParser.parse(responseData))
  .then((rss) => {
    this.setState({
      description : rss.items,
      isLoading : true
    });
    rss.items.map((value, index) => {
      this.setState({
        dateStack : this.state.description[index].published
      });
    });
  });

这里dateStack是数据排序后的数组 但它没有得到排序的数据,只得到一个数据...... 谁能帮我? 请告诉我该怎么做~

不仅第一个 setState 是异步的,而且不能立即用 this.state.description 引用,dateStack 只有一个数据点的原因是因为你在地图中的每次迭代。如果您希望 dateStack 只是 rss.items 中每个元素的 published 属性 的数组,您可以只使用 map:

.then((rss) => {
    this.setState({
        description: rss.items,
        isLoading: true,
        dateStack: rss.items.map(item => item.published)
    });
})

首先,map 是获取数据数组的好方法,但有时很难理解而不是使用它,请使用 for 循环 来映射数据。这是执行此操作的简单方法。

fetch('url here')
    .then((response) => response.text())
    .then((responseData) => rssParser.parse(responseData))
    .then((rss) => {

        var l_Data = [];
        for (var index = 0; index < rss.length; index++)
        {
            l_Data[index] = rss[index];
        }
        this.setState({
            description: l_Data,
            isLoading: true
        });
            this.setState({
                dateStack: l_Data;
            });

    });