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

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

我想从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是数据排序日期的数组但是它不获取排序的数据,仅获取一个数据...谁能帮我?请让我知道该怎么做〜

javascript reactjs react-native rss fetch
2个回答
0
投票

不仅不仅第一个setState是异步的而且不可靠地立即使用this.state.description进行引用,所以dateStack仅具有单个数据点的原因是因为您在映射中的每次迭代中都将其覆盖。如果希望dateStack只是published中每个元素的rss.items属性的数组,则可以使用map

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

0
投票

首先,映射是获取数据数组的一种好方法,但是有时很难理解而不是使用它,而使用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;
            });

    });
© www.soinside.com 2019 - 2024. All rights reserved.