修改ReactJS组件中子项的属性

时间:2014-11-11 11:35:21

标签: reactjs

我试图弄清楚如何修改组件的子代,例如,添加一个类。我试过这样做:

var inputReactObject = React.Children.only(this.props.children);

inputReactObject.className = "test";

然而,这似乎不起作用。

是否可以在ReactJS组件中修改子属性?

Full plunker:http://plnkr.co/edit/msbUSDBQn17qXzBHzGXD?p=preview

2 个答案:

答案 0 :(得分:6)

如@lpiepiora plunker所述,执行我想要的代码将是:

var inputReactObject = React.Children.only(this.props.children);
var clonnedChild = React.addons.cloneWithProps(inputReactObject, {
  className: "input-element test"
});

return clonnedChild;

答案 1 :(得分:6)

现在cloneWithPropsdeprecated,目前的做法是

var inputReactObject = React.Children.only(this.props.children);
var clonedChild = React.cloneElement(inputReactObject, {
  className: "input-element test"
});

return clonedChild;