Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在React Native中循环数组_Arrays_Loops_React Native_Rss_Rss Reader - Fatal编程技术网

Arrays 如何在React Native中循环数组

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

RSS提要被解析为一个数组,但问题是,数组不循环,它只显示1项。如何循环我的
提要
数组

这是我的代码,我使用
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 });