鉴于以下数组,我想comments
通过使用parentId
.
comments: [
{
id: 1,
parentId: null
},
{
id: 2,
parentId: 1
},
{
id: 3,
parentId: 1
},
{
id: 4,
parentId: 3
},
{
id: 5,
parentId: 4
}
]
我认为使用下面的组件我可以通过评论递归,但输出不是我所期望的(它似乎<ul>
为每个评论呈现一个新元素。)我有点新的react和javascript,所以也许我没有正确实现递归,或者应该comments
采用不同的结构?
const Comment = (props) => (
<li>
{props.comment.id}
{props.comment.children.length > 0 ?
<Comments comments={props.comment.children}/>
: null }
</li>
);
const Comments = (props) => (
<ul>
{props.comments.map((comment) => {
comment.children = _.filter(props.comments, {'parentId': comment.id});
return <Comment key={comment.id} comment={comment}/>
})}
</ul>
);