Есть следующие блоки:
<MDBCol md="4">
<div className="branch" onClick={func}>
<h5>Врач хирург</h5>
</div>
</MDBCol>
<MDBCol md="4">
<div className="branch" onClick={func}>
<h5>Врач терапевт</h5>
</div>
</MDBCol>
<MDBCol md="4">
<div className="branch" onClick={func}>
<h5>Врач кардиолог</h5>
</div>
</MDBCol>
Я могу как-то из них забирать значение по клику, чтобы оно хранилось в памяти?
Создадим функцию и назовем ее addValueToArray
, она будет навешиваться на все дивы, которые содержат описание, которое нужно достать при клике и сохранить. Значения будем хранить в массиве values
в стейте компонента. При сохранении знового значения в стейт использовал spread syntax, чтобы не вызвать мутацию стейта, что может привести к сайд эффекту.
Через currentTarget
- получить элемент, в котором в данный момент обрабатывается событие, а через textContent
- получить текстовое содержимое элемента и его потомков. Проверка черех indexOf
добавлена, чтобы уже существующие значения в массиве не попали в него снова.
Рабочий пример кода:
import React from "react";
import ReactDOM from "react-dom";
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
values: []
};
this.addValueToArray = this.addValueToArray.bind(this);
}
addValueToArray(e) {
const { textContent } = e.currentTarget;
const { values } = this.state;
if (values.indexOf(textContent) === -1) {
this.setState({
values: [...this.state.values, textContent]
});
}
}
render() {
return (
<div>
<h1>Врачи</h1>
<div onClick={this.addValueToArray}>
<h5>хирург</h5>
</div>
<div onClick={this.addValueToArray}>
<h5>терапевт</h5>
</div>
<div onClick={this.addValueToArray}>
<h5>кардиолог</h5>
</div>
<div>
<h4>Кто был выбран?</h4>
<ul>
{this.state.values.map((value, index) => (
<li key={index}>{value}</li>
))}
</ul>
</div>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById("app"));
Результат:
Полезные ссылки:
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу разобраться в коде, но его минимизировали, а упорядочить у меня его не получаетсяКак это можно сделать? сам код https://cdn-cis
Я пишу игру - танчики на php/jsМне нужно сделать так, чтобы, зажимая пробел, пули не отрисовывались бесконечно, создавая хаос
Пишу расширение для google chrome, на страницах vk он выполняет некие действия, например перекрашивает заголовки постов в сообществах в другой цветСкрипт...
Возможно ли получить ширину и высоту изображения после того, как пользователь выбрал файл, но ещё его не загрузил на сервер?