从映射返回React渲染数组

React render array returned from map

本文关键字:数组 React 映射 返回      更新时间:2023-09-26

我面临着一个与此问题非常相似的问题,但我使用Promise获取数据,并希望在数据通过时将其呈现到DOM中。console.log()正确显示所有项目。我认为我的问题是lodash.map返回一个<li>元素的数组,所以我试图调用this.renderItems()来渲染(但renderItems()似乎不存在)。我是不是在做一些非常规的事情,有没有更简单的方法,有没有等效的函数来代替我的renderItems()

   renderArticleHeadline: function(article) {
      console.log('renderArticleHeadline', article.headline);
      return (
         <li>
            {article.headline}
         </li>
      )
   },
   render: function() {
      return (
         <div>
            <ul>
               {
                  this.renderItems(
                     this.fetchFrontPageArticles().then(data => {
                        lodash.map(data, this.renderArticleHeadline)
                     })
                  )
               }
            </ul>
         </div>
      );
   }

它应该类似于这个

getInitialState: function() {
    return {
        items: []
    };
},
renderArticleHeadline: function(article) {
    return (
         <li>
            {article.headline}
         </li>
    );
},
componentDidMount: function() {
    this.fetchFrontPageArticles().then(data => {
        this.setState({
            items: data
        });
    });
},
render: function() {
  var items = lodash.map(this.state.items, this.renderArticleHeadline);
  return (
     <div>
        <ul>
            {items}
        </ul>
     </div>
  );
}

p.S.反应中的阅读思维