im использование реакции, и у меня есть компонент, который просто нужно отображать дочерние элементы и добавлять их в класс в соответствии с условием. Каков наилучший способ сделать это?React - добавление класса к дочерним компонентам
ответ
Я понял это неделю назад, это то, что я хотел:
export default class ContainerComponent extends React.Component {
constructor(props) {
super(props);
this.modifyChildren = this.modifyChildren.bind(this);
}
modifyChildren(child) {
const className = classNames(
child.props.className,
{...otherClassses}
);
const props = {
className
};
return React.cloneElement(child, props);
}
render() {
return (<div>
{React.Children.map(this.props.children, this.modifyChildren(child))}
</div>);
}
}
Я пробовал это решение, однако я получаю ошибку от функции рендеринга, «ребенок не определен». Если я перейду на анонимную функцию, вместо вызова метода класса (this.modifyChildren в вашем примере) ошибка исчезнет, и все работает нормально. Это работает как с «жирной стрелкой», так и с традиционными анонимными функциями JS. Не могу понять, почему он работает для вас, а не для меня, когда наш код почти идентичен. –
Внутри делает метод компонента:
var childClasses = [],
childClassNames;
if (condition) {
childClasses.push('my-class-name');
}
childClassNames = childClasses.join(' ');
return (<div className={childClassNames}>
.... (your component here)
</div>);
Я не хочу делать это в каждом из компонентов, я хочу, чтобы компонент, содержащий их, выполнял тестирование и добавлял класс, если необходимо – Pachu
Не знаете, чего именно вы пытаетесь достичь. Ваш родительский компонент может рассчитать все необходимые классы и передать их в качестве реквизита для детей. – Maggie
Вы можете пройти опору вниз к ребенку, и он может выбрать, какой класс применить (или просто передать имя класса, но это более семантическое):
В вашем ребенке оказывают:
const classes = [];
if (props.contentVisible)
classes.push('visible');
<div className={classes.join(' ')} />
- 1. React Native - ошибка перехода к дочерним компонентам
- 2. React router передает определенные параметры дочерним компонентам
- 3. Как передать реквизиты дочерним компонентам в React
- 4. Невозможно передать родительские методы дочерним компонентам в React
- 5. wxWidgets: Как обратиться к дочерним компонентам?
- 6. Передача данных дочерним компонентам в реакциях
- 7. React - передача объектов JSON ко всем дочерним компонентам без гражданства
- 8. React - передача данных jSON дочерним компонентам дочерних компонентов
- 9. Angular2: Передача данных дочерним компонентам
- 10. Передача состояния дочерним компонентам как свойства
- 11. Динамически добавлять детей к компонентам React.
- 12. Доступ к компонентам другого класса
- 13. React.js как передать обратные вызовы дочерним компонентам?
- 14. Передайте маршрутизатор дочерним компонентам через контекст
- 15. Как передать данные от родительского к дочерним компонентам?
- 16. Swing: передать события дочерним компонентам преобразованного родителя
- 17. jQuery: добавление класса к дочерним элементам x количество раз
- 18. ReactJS - как передать «глобальные» данные глубоко вложенным дочерним компонентам?
- 19. Как получить доступ к дочерним компонентам, относящимся к реестру, с помощью ref?
- 20. Доступ к компонентам Swing другого класса
- 21. Доступ к компонентам деятельности из класса неактивности
- 22. React Native/Redux: Как передать обновленное состояние дочерним компонентам при каждом изменении состояния?
- 23. Как получить доступ к динамическим компонентам для детей в React?
- 24. Использование refs для доступа к компонентам в React
- 25. Добавление подсказки к дочерним элементам ViewPort3D
- 26. React, добавление события onClick непосредственно к компонентам вместо элемента render внутри указанного компонента.
- 27. Передача переменных компонентам через Route in React
- 28. Добавление атрибута дочерним элементам
- 29. Как передать реквизиты дочерним компонентам в дереве реактивного маршрутизатора
- 30. В Flex, как должны передаваться свойства дочерним компонентам?
[Это] (http://stackoverflow.com/questions/26863938/modify-attributes-of-children-in-reactjs-component) должен помочь вам. –