React:循环使用两个不同的API似乎不起作用。

时间:2016-06-16 23:58:26

标签: javascript json api loops reactjs

您好我有这些模拟API:

  

评论:https://api.myjson.com/bins/17g1r

     

帖子:https://api.myjson.com/bins/2ec13

我想循环使用Posts API和Comments API,根据评论API中的postId获取每篇帖子的评论数量。我尝试这样做,但它只返回一个带有数据的对象,而其他对象则没有。 这是组件的一部分:

  postComments(comments, posts) {
    for (var key in comments) {
      const obj = comments[key];
        return posts.map((post, i) => {
              return <PostDisplay
                      key={i}
                      {...post}
                      commentLength={ obj.postId === post.id ? obj : '' }
                    />;
        })
    }
  } 

当console.logged返回此commentLength道具时:

Object {id: 1, text: "Praesentium ut qui facere aliquid.", user: "keltonabshire", postId: 60297}
16

Object是唯一传递的结果,而16是我在commentLength组件上传递给PostDisplay的空字符串。

但是,我希望能够呈现PostDisplay组件,并获得此特定comments使用post的{​​{1}}个数。

postId正在工作,但PostDisplay并非与每个组件相关的commentsLength全部。

谢谢

1 个答案:

答案 0 :(得分:1)

您想获得特定帖子的评论长度吗?你可能不需要先循环注释,试试这个:

postComments(comments, posts) {

     return posts.map((post, i) => {
           return <PostDisplay
                   key={i}
                   {...post}
                   commentLength={ comments.filter(comment => comment.postId === post.id).length }
                 />;
     })
 }