2015-02-11 249 views
0

有没有比使用递归模板时再次重新传递所有属性更优雅的解决方案?将属性传递给递归模板?

<!-- 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

我不确定我明白......你是否试图将所有道具转移给儿童? http://facebook.github.io/react/docs/transferring-props.html – WiredPrairie 2015-02-11 21:29:57

+0

我试图在递归模板中重新传递相同的属性(注释包括具有来自父CommentList的所有必要属性的注释) - - >更新后的问题 – kraftwer1 2015-02-11 21:31:53

+0

按照我提供的链接中的建议,会不会按照<注释{... this.props} />做你想做的事情? – WiredPrairie 2015-02-11 21:36:14

回答

1

如果你想转移你可以使用JSX spread attributes父控件的属性注入到指定的元素属性:

的语法类似于提出的EcmaScript 6(和一些语法7):{...props}

例如,通过使用this.props,您将获得复制到子项中的父类的所有属性。 (这可能是{...myObj}以及...这将在例如名为myObj对象复制值。)

所以,在你的榜样,它可能是:

return <Comment {...this.props} extra="stuff" />; 

Here有更多的细节和其他一些选项也可以考虑。