使用递归模板时,是否存在比再次传递所有属性更优雅的解决方案?
<!-- CommentList.js -->
<Comment comment="comment" property="one" property="two"></Comment>
<!-- Comment.js -->
<p>{comment.message}</p>
<!-- loop over comment.children (more comments, same properties) -->
<Comment comment="comment" property="one" property="two"></Comment>
<!-- end loop -->
答案 0 :(得分:1)
如果要传输属性,可以使用JSX spread attributes将父控件的属性注入指定元素:
语法类似于EcmaScript 6中的语法(以及7中提出的内容):{...props}
。
例如,通过使用this.props
,您将获得复制到子项中的父类的所有属性。 (它也可以是{...myObj}
...它将复制该示例中名为myObj
的对象的值。)
因此,在您的示例中,它可能是:
return <Comment {...this.props} extra="stuff" />;
Here是您可以考虑的更多细节和其他一些选项。