如何在Rails关联模型中映射嵌套对象以做出反应?

时间:2018-09-27 16:27:37

标签: javascript ruby-on-rails reactjs

在设置带有很多评论的简单帖子模型后,用react获得帖子评论的最佳方法是什么?

  

例如在rails中,循环将是:

<ul>
<%= @post.comments.each do |c| %>
     <li><%= c.title %></li> 

<% end %>
</ul>

在反应中映射是等效的,但是在这种情况下,来自对象的映射仍然会造成混淆。

var comments = this.state.comments.map(c => {

              return (
                 <div key={comment.id}>
                <ul >


                  <li>{comment.title}</li>


                </ul>

                  </div>

              );

            });

所以我已经尝试过了,但是按预期没有效果。因此,有人对React上的地图嵌套数组有任何暗示吗?

 var post = this.state.post.map(p => {

                  return (
                     <div key={comment.id}>
                    p.comments.map(c => {
                   <div key={ct.id}></div>
});

                      </div>

                  );

                });

1 个答案:

答案 0 :(得分:0)

以下两个选项中的任何一个都可以为您服务。您必须对嵌套数组进行条件检查并添加return。

.map下面与return配合使用

       const postItems = this.state.post && this.state.post.map(p => {
              return (
                 <div key={comment.id}>
                    if(p.comments){
                         p.comments.map(c => {
                             return <div key={ct.id}></div>
                         });
                     }
                  </div>
              );
            });

或者.map不能返回

         const postItems = this.state.post &&  this.state.post.map(p => (
                 <div key={comment.id}>
                    if(p.comments){
                          p.comments.map(c => (
                               <div key={ct.id}></div>
                          ));
                    }
                  </div>
            ));