2017-02-19 6 views
-1

Как добавить класс по нажатой кнопке? Мне нужно сделать это в классе или я могу добавить состояние на константу? Я попытался сделать функцию handleclick, но, похоже, я не могу запустить initialstate на константу.Как добавить класс по нажатой кнопке?

const CaseListItem = ({ currentCase, onCaseSelect }) => { 
console.log(currentCase); 
    return (
    <div> 
    <button onClick={() => onCaseSelect(currentCase)} className={currentCase.color} /> 
    <div className="media-heading"> {currentCase.title} </div> 
    </div> 
); 
}; 

ответ

1

Я думаю, что в таком случае вы должны использовать компонент с состоянием и обновлять состояние имя цвета собственности на клик - это будет вновь сделать свой компонент, и вы будете иметь возможность использовать государственную Собственость в качестве имени класса. Вы также можете сохранить этот компонент без гражданства, но в таком случае родительский компонент должен иметь состояние, которое будет обновляться, когда ребенок компонент (CaseListItem) нажата, а затем вы можете передать состояние свойство цвета, как опора для CaseListItem компонента

+0

То, что он сказал. Просто введите значение в состоянии, либо значение, которое представляет имя класса (которое первоначально равно null), либо логическое значение, указывающее, нажата ли кнопка или что-то еще. Затем в функции рендеринга в значении className у вас может быть тройной оператор, который применяет этот класс на основе значения состояния (например, если вы храните его как определенное значение, 'если значение состояния равно null, а затем возвратите" ", еще возвращение {this.state.className} 'в значении Classname элемента – Jayce444

+0

Я попытался сделать это в классе, но получает тоны ошибок класса CaseListItem расширяет компонент { визуализации() { возвращение (

) } } –

+0

Лучше сделать это? –