Arrays 如何在React Native中循环数组
RSS提要被解析为一个数组,但问题是,数组不循环,它只显示1项。如何循环我的Arrays 如何在React Native中循环数组,arrays,loops,react-native,rss,rss-reader,Arrays,Loops,React Native,Rss,Rss Reader,RSS提要被解析为一个数组,但问题是,数组不循环,它只显示1项。如何循环我的提要数组 这是我的代码,我使用react原生rss解析器(): 您的this.state.x仅保存一项,请将代码更改为以下内容: 而且您还应该更改get Data方法,请不要在循环中设置state componentDidMount() { return fetch("https://vnexpress.net/rss/tin-moi-nhat.rss") .then(response => r
提要
数组
这是我的代码,我使用react原生rss解析器
():
您的this.state.x仅保存一项,请将代码更改为以下内容: 而且您还应该更改get Data方法,请不要在循环中设置state
componentDidMount() {
return fetch("https://vnexpress.net/rss/tin-moi-nhat.rss")
.then(response => response.text())
.then(responseData => rssParser.parse(responseData))
.then(rss => {
let copyRess = []
let copyTitle = []
for (let i = 0; i < rss.items.length; i++) {
copyRess.push(rss.items[i]);
copyTitle.push(rss.items[i].title)
}
this.setState(prevState => ({
...prevState,
feed: copuRess,
title: copyTitle
}));
});
}
render() {
const Feeds = []
this.state.title.map(element => {
Feeds.push({pic:"",title:element})
})
....
componentDidMount(){
返回取回(“https://vnexpress.net/rss/tin-moi-nhat.rss")
.then(response=>response.text())
.then(responseData=>rssParser.parse(responseData))
。然后(rss=>{
让copyRess=[]
让copyTitle=[]
for(设i=0;i({
…国家,
饲料:黄嘌呤,
标题:文案
}));
});
}
render(){
常量提要=[]
this.state.title.map(元素=>{
Feeds.push({pic:,title:element})
})
....
for循环中的代码有问题,您只是用一个值替换状态,而不是复制以前的状态。您必须
this.setState(prevState => ({
...prevState,
feed: [...prevState.feed, rss.items[i]],
title: [...prevState, rss.items[i].title]
}));
但这不是最佳实践,因为在每次迭代中,渲染都会重新渲染,因此最佳实践是
const feeds = rss.items.map(item => item);
const titles = rss.items.map(item => item.title);
this.setState({ feed: feeds, title:titles });
我尝试了你的两种解决方案,但它们似乎都不起作用,只是一个空白屏幕。请控制台。然后(rss=>{console.log(rss)items数组为空,这就是为什么它不渲染。添加
返回内部{Feeds.map({pic,title})=>(
给出一个语法错误它呈现一个空白屏幕,否feed@qhtn,我更新了答案,你的数据没有来源,请先检查一下。这是否回答了你的问题?@qhtn,你的数据项是空的你是什么意思?
this.setState(prevState => ({
...prevState,
feed: [...prevState.feed, rss.items[i]],
title: [...prevState, rss.items[i].title]
}));
const feeds = rss.items.map(item => item);
const titles = rss.items.map(item => item.title);
this.setState({ feed: feeds, title:titles });