Я не знаю, является ли это ошибкой или как это работает, но я заметил, что React.addons.cloneWithProps работает со стандартными тегами (например, <div>
), но не с дочерними компонентами.React: почему React.addons.cloneWithProps не работает с компонентами?
Это рабочий пример проблемы. Я ожидаю, что оба divs будут иметь красный фон, но тот, который создан с компонентом, не работает.
http://jsfiddle.net/ydpk2dp7/1/
var Main = React.createClass({
render: function() {
children = React.Children.map(this.props.children, function (c, index) {
return React.addons.cloneWithProps(c, {
style: {
background: 'red'
}
});
});
return (
<div>
{children}
</div>
);
},
});
var Comp = React.createClass({
render: function() {
return (
<div>{this.props.children}</div>
);
}
});
React.render(
<Main>
<div>1</div>
<Comp>2</Comp>
</Main>
, document.body);