
Как получить элемент, нажатый на клавишу, в React
10 января 2024 г.Повторное использование компонентов — это основополагающая особенность создания приложений с помощью React. Часто одни и те же компоненты отображаются несколько раз, и нам нужен атрибут key
, чтобы однозначно идентифицировать каждый экземпляр.
В этом руководстве мы узнаем, как получить ключ к выбранным элементам в React.
Получить ключ выбранных элементов в React
Для простоты давайте создадим страницу с тремя элементами span с разными значениями key.
<div>
<span key={1}>element one</span>
<span key={2}>element two</span>
<span key={3}>element three</span>
</div>
Теперь давайте установим обработчик событий onClick
для доступа к key
элемента каждый раз при его нажатии.
Нам нужно передать событие как функцию обратного вызова, чтобы оно выполнялось только при возникновении события, а не каждый раз при визуализации элемента (или компонента).
В функции мы просто используем ключ элемента console.log()
. Эти элементы не являются динамическими, поэтому нам нужно вручную передать ключ
в качестве аргумента для каждого обработчика событий.
<div>
<span key={1} onClick={() => console.log(1)}>
element one
</span>
<span key={2} onClick={() => console.log(2)}>
element two
</span>
<span key={3} onClick={() => console.log(3)}>
element three
</span>
</div>
Получите ключ при нажатии на динамически отображаемые элементы
Приведенный выше простой пример полезен для демонстрации того, как получить key
элементов, по которым щелкнули, в React. Однако в большинстве случаев вам необходимо получить ключ динамически отображаемых компонентов (и элементов).
В React обычно визуализируют компоненты на основе массива. Обычно мы используем метод map() для возврата компонента для каждого элемента массива. Данные каждого элемента используются в качестве содержимого, свойств, атрибутов или даже для применения пользовательских стилей к элементам и компонентам.
Давайте рассмотрим пример:
function Hello() {
const [key, setKey] = useState(null);
const cities = ["London", "Paris", "Rome"];
return (
<div>
{cities.map((city, index) => (
<span key={index} onClick={() => setKey(index)}>
{city}
</span>
))}
<p>Clicked element's key is {key}</p>
</div>
);
}
Мы используем метод map()
для создания элементов <span>
для каждого города в массиве cities
. Каждая строка используется в качестве текстового содержимого для элементов <span>
.
Функция обратного вызова внутри метода map имеет два аргумента. Первый аргумент city
обозначает элемент массива. По умолчанию метод map()
также принимает второй аргумент index
, который является индексом каждого элемента массива.
Мы используем этот index
для присвоения уникальных значений key
элементам <span>
. Обработчик событий onClick
также принимает номер index
и обновляет переменную состояния key
.
Внутри JSX мы отображаем переменную состояния key
, чтобы показать элемент, по которому был сделан щелчок.
Если вам понравилось это руководство, посетите мой блог о React.
Оригинал
Recent Post
-
Barbaricboot - это инструмент массовой перезагрузки, который ваш ИТ -отдел не знал, что ему нужно
9 июля 2025 г. -
Как создавать оповещения Loki через ресурс Prometheusrule
9 июля 2025 г. -
Как использовать Jbbelet: безопасное выполнение процесса Linux сделано простым
9 июля 2025 г. -
Почему писатели компиляторов заботятся о случаях
9 июля 2025 г. -
Ай пишет код сейчас - так почему разработчики все еще имеют значение?
9 июля 2025 г.
Categories
- Python
- blockchain
- web
- hackernoon
- вычисления
- вычислительные компоненты
- цифровой дом
- игры
- аудио
- домашний кинотеатр
- Интернет
- Мобильные вычисления
- сеть
- фотосъемка видео
- портативные устройства
- программного обеспечения
- телефон и связь
- телевидение
- видео
- мир технологий
- умные гиды
- облако
- искусственный интеллект
- се
- Samsung
- умные города
- digitaltrends
- отели
- Startups
- Venture
- Crypto
- Apps
- безопасность
- техника и работа
- cxo
- мобильность
- разработчик
- 5г
- майкрософт
- инновации
- Права и свободы
- Законодательство и право
- Политика и общество
- Космическая промышленность
- Информационные технологии
- Технологии
- Образование
- Научные исследования
- Автомобильная промышленность
- Программная инженерия
- IT и технологии
- Веб-разработка
- Программирование
- Автоматизация
- Карьерный рост
- Программирование и анализ данных
- Трудоустройство
- Политика
- Искусственный интеллект
- ИТ-технологии
- Программное обеспечение
- Экологическая политика
- Образование и рынок труда
- Политика и право
- Microsoft Teams и SharePoint
- Информационная безопасность
- Кибербезопасность
- Налоги
- Образование и карьера
- Интернет и технологии
- Технологии, Государственные услуги
- Политика и технологии
- Разработка программного обеспечения
- Разработка ПО
- Машинное обучение
- Налогообложение, технологии, открытый исходный код
- Финансы и налоги
- Технологии, Интернет, Экология
- Интернет, безопасность
- Технологии и политика
- Операционные системы
- Профессиональная разработка
- Технологии, Безопасность
- Интернет и общество
- Финансовая индустрия
- Налоговый учёт
- Общественное здравоохранение
- Технологическая отрасль
- Юриспруденция
- Технологии и государство
- Здоровье и фитнес
- IT-инфраструктура
- Технологии и ИИ
- Здравоохранение
- IT
- Технологии, Экономика
- Музыка и технологии
- Здоровье и питание
- IT и безопасность
- Бизнес и предпринимательство
- Технологии, Программное обеспечение
- Технологии и инновации
- Технологии, данные, этика
- Технологии и Интернет
- Технологии и SaaS
- Медицина и здравоохранение
- Онлайн-видеосервисы
- Финансы и технологии
- Чтение и саморазвитие
- Экономика и бизнес
- Безопасность данных
- Удаленная работа
- Авиация и технологии
- Технологии, Игры
- Энергетика
- Социальные сети, безопасность, технологии
- Саморазвитие
- Безопасность информации
- Бизнес и карьера
- Технологии и отношения
- Игровая индустрия
- Компьютерная индустрия
- Математика, Искусственный интеллект
- Наука и технологии
- Технологии и безопасность
- Технологии, Удаленная работа, Бизнес
- Видеоигры
- Технологии, Искусственный интеллект, Этика
- Технологии, социальные сети, 6G
- Технологии, Программирование, AI, Разработка ПО
- Программирование, Разработка ПО, Технологии
- Животные
- Технологии, Искусственный интеллект
- Программирование, карьера, технологии, обучение
- Бизнес и технологии
- Технологии, Безопасность данных
- Астрономия и физика
- Продуктивность, личное развитие
- Медиа и Технологии
- Программирование и Искусственный Интеллект
- Социальные сети
- Политика и экономика
- Технологии, Медицина, Искусственный интеллект
- Технологии и управление
- Космос и астрономия
- Общество и политика
- Космические исследования
- Веб-дизайн
- Искусственный интеллект и безопасность данных
- Технологии, Безопасность, Конфиденциальность
- Экологическая проблема
- Технологии, Погода
- Авиация
- Транспортная сфера
- Технологии и бизнес
- Игровая промышленность
- Телевидение и реклама
- Аналитика данных
- Технологии и кибербезопасность
- Маркетинг
- Технологии и гаджеты
- Технологии, Авиация, Инновации
- Финансы и инвестиции
- Технологии и общество
- Рыночный анализ
- Космология
- Данные и бизнес
- IT и программирование
- Технологии и право
- Программирование и разработка
- Медицинские технологии
- Авиационная промышленность
- Технологии и искусственный интеллект
- Генетическая инженерия
- Бизнес и инвестиции
- Компьютерная промышленность
- Психология и социология
- Образование и технологии
- Рынок труда
- Технологии, Стартапы
- Технологии, Приватность, Чтение
- Маркетинг и продажи
- Виртуальная реальность
- Технологии, Смартфоны, Маркетинг
- Технологии, Бизнес, Личностный рост
- Экологические проблемы
- Экономика и технологии
- IT и карьера
- Интернет и безопасность
- Разработка и технологии
- Биотехнологии
- Интернет-магазины, кибербезопасность
- Финансы
- Безопасность и технологии
- Экономика
- Защита данных
- Data Science
- Карьера и работа
- Финансовый успех, мошенничество, маркетинг
- Безопасность
- Экология
- Космическая индустрия
- Программирование, Python, Обучение
- Технологии искусственного интеллекта
- Технологии, Дизайн, iOS
- Программирование, DevOps, Kubernetes
- Социальные сети и пропаганда
- Корпоративная этика
- Управление IT-инфраструктурой
- Здоровье и медицина
- Медицина
- Медицинская промышленность
- Разработка и дизайн
- Искусственный интеллект, Диагностика систем
- Образование и психология
- Технологии, Автомобильная промышленность
- Автомобили и путешествия
- Астрономия и космология
- Программирование и технологии
- IT, работа в офисе, эмоциональный интеллект
- Компьютерная техника
- Здоровье и благополучие
- Управление персоналом
- Политика и управление
- Бизнес и экономика
- Социальные сети, Пропаганда, Информационная безопасность
- Технологии и автоматизация
- Геймдизайн
- Экология и технологии
- CRM-системы, IT-инфраструктура
- Права человека
- Цифровая цензура, свобода слова, технологии
- Технологии, Искусственный интеллект, Работа
- Наука о данных
- Астрономия, Наука
- Интернет и цифровые технологии
- Технологии, управление
- Интернет и связь
- Технологии и конфиденциальность
- Интернет и свобода слова
- Психология и социальные науки
- Книги и литература
- Работа и карьера
- Финансовые технологии
- Психология и саморазвитие
- IT, программирование, сети
- Технологии, Видеоигры
- Экология и энергетика
- Космонавтика
- Медицина и технологии
- Игры и развлечения
- Музыкальная индустрия
- Логистика и складирование
- Бизнес и финансы
- Экология и окружающая среда
- Правозащита
- Социальные сети и дезинформация
- Технологии и рынок труда
- Технологии, Искусственный интеллект, Рынок труда
- Технологии и будущее
- Медицина и здоровье
- Социальные медиа
- Экология, политика, общество
- Экономика и Финансы
- Разработка игр
- Пропаганда и дезинформация
- Медицинские исследования
- Онлайн-знакомства
- Политика и СМИ
- Энергетика и электромобили
- Климатические изменения
- Технологии, Рынок труда
- IT и управление данными
- Безопасность и кибербезопасность
- Интернет-технологии
- Психология и личностное развитие
- Технологии, Мессенджеры
- Цифровые технологии
- Здоровье и самосовершенствование
- Технологии и AI
- Технологии и спорт
- IT, Разработка программного обеспечения
- Экология и климат
- Космос и технологии
- Юридическая сфера
- Безопасность в интернете
- Программирование, Искусственный Интеллект, Качество ПО
- Технологии и мессенджеры