я полагал, что я мог бы сделать это, но я получаю эту ошибку:ReactJS Почему я не могу изменить детей передаются в компонент
TypeError: child.constructor.ConvenienceConstructor не является функцией
У меня есть компонент на странице, ala:
// этот контент на html-странице. Мой компонент читает в этом дочернем элементе, но я не могу изменить какую-либо его часть. Просто подумайте.
<MyComponent prop1="somevalue">
<div className="myclass1"> some child content that is dynamic </div>
</MyComponent>
Теперь в моем компоненте, так что внутренний ребенок (дети) является динамичным, мне нужно изменить этот класс в зависимости от некоторых условий. Но я не могу. Я получаю эту ошибку, отмеченную выше.
Я попытался это:
var childContent = React.Children.map(this.props.children,
function(child) {
return React.cloneWithProps(child,
{ className: 'myNEWClass' });
});
Я попытался cloneElement тоже, что не работает.
Не работает. Я попытался обратиться к ребенку напрямую, ала:
child._store.props.className // but can't seem to change it, seems immutable.
Итак, как я могу изменить этот класс?
спасибо,
будет [React.cloneElement] (https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement) работать в вашем контексте? – Daniel
должен упомянуть об этом. Я попробовал это, без кубиков. спасибо за предложение. – user1492442
Какую версию React вы используете? 'cloneElement' в 0.13.1 работает точно так, как вы хотите, когда я его пробую. –