从map返回的React渲染数组

Lan*_*nce 2 javascript dictionary promise lodash reactjs

我面临着一个与此问题非常相似的问题,但我使用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>
      );
   }
Run Code Online (Sandbox Code Playgroud)

小智 8

它应该是这样的

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>
  );
}
Run Code Online (Sandbox Code Playgroud)

PS阅读思考反应