Javascript 我想从react native中的RSS中获取按发布日期排序的数据
我想从react native中的RSS中获取按发布日期排序的数据 我使用了以下代码:Javascript 我想从react native中的RSS中获取按发布日期排序的数据,javascript,reactjs,react-native,rss,fetch,Javascript,Reactjs,React Native,Rss,Fetch,我想从react native中的RSS中获取按发布日期排序的数据 我使用了以下代码: fetch('url here') .then((response) => response.text()) .then((responseData) => rssParser.parse(responseData)) .then((rss) => { this.setState({ description : rss.items, isLoadi
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是按日期排序的数据数组
但是它没有得到排序的数据,只得到一个数据。。。
谁能帮我?
请让我知道如何执行此操作不仅第一个
设置状态
异步且不可靠,无法立即引用此.state.description
,而且日期堆栈
只有一个数据点的原因是,您在映射的每次迭代中都会覆盖它。如果希望dateStack
只是rss.items
中每个元素的published
属性的数组,则可以使用map
:
.then((rss) => {
this.setState({
description: rss.items,
isLoading: true,
dateStack: rss.items.map(item => item.published)
});
})
不仅第一个
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)
});
})
首先,映射是获取数据数组的一种很好的方法,但有时很难理解而不是使用它,请使用for loop映射数据。下面是实现这一点的简单方法
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;
});
});
fetch('url here')
.然后((response)=>response.text())
.then((responseData)=>rssParser.parse(responseData))
。然后((rss)=>{
var l_数据=[];
对于(var index=0;index
首先,映射是获取数据数组的一种很好的方法,但有时很难理解而不是使用它,请使用for loop来映射数据。下面是实现这一点的简单方法
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;
});
});
fetch('url here')
.然后((response)=>response.text())
.then((responseData)=>rssParser.parse(responseData))
。然后((rss)=>{
var l_数据=[];
对于(var index=0;index
setState
是异步的,所以你不能在映射方法中依赖这个.state
。setState
是异步的,所以你不能在映射方法中依赖这个.state
。但是它没有结果。你确定每个rss.items
元素都有一个published
属性吗?我们无法看到您正在处理的数据结构,只能根据您提供的内容进行假设,但没有结果。您确定每个rss.items
元素甚至都有一个published
属性吗?我们无法看到您正在处理的数据结构,只能根据您提供的内容进行假设