Мне нравится React, потому что мне легко работать с компонентами. И когда я работаю над проектом, в котором используются кликабельные эскизы для отправки пользователя на более подробную страницу, мне очень нравятся реквизиты React.

Реквизиты — это в основном атрибуты, которые можно добавить к компоненту внутри функции рендеринга родительского компонента. Они могут быть абсолютно любыми. А для проектов, о которых я упоминал выше, свойства становятся еще более мощными в сочетании с методом map(), как я покажу в примере ниже.

Перво-наперво, давайте настроим 2 файла. Мы назовем их Parent.js и Child.js, чтобы упростить задачу.

Parent.js будет нашим основным компонентом и покажет список имен. Child.js будет компонентом, который отображает эти имена.

Итак, для Child.js я просто настрою базовый компонент React с пустыми тегами ‹p›, которые будут отображать имя и фамилию, когда он будет завершен:

И Parent.js также начинается очень просто. Я добавил внутрь несколько дочерних компонентов просто в качестве заполнителя (и не забудьте импортировать дочерний компонент!).

Но поскольку мы хотим получить доступ к нашим именам и отобразить их с помощью ChildComponent, мы должны предоставить эту информацию ChildComponent. И здесь вступают в игру map() и props, а также немного об использовании состояния:

Вверху я импортировал имена из файла Names.js в том же каталоге, что и ParentComponent. Для этого примера я просто предполагаю, что данные об именах хранятся в файле, который выглядит примерно так:

И я добавил функцию getInitialState, которая устанавливает ключевые «имена», равные нашему импортированному массиву имен. Кроме того, я удалил из кода ‹ChildComponent /›, так как я использую map() для создания этих компонентов. Вы заметите, что сопоставление выполняется ВНЕ функции рендеринга. Это очень важно.

Пара ключ/значение, помещаемая в каждый дочерний компонент в функции карты, становится реквизитом для каждого дочернего компонента.

И последнее, что касается нашего ParentComponent. Нам нужно что-то вернуть, так как сейчас у нас просто пустые теги ‹div›. Мы добавляем наш сопоставленный массив, который мы назвали «именами» внутри:

Итак, теперь мы можем перейти к нашему файлу ChildComponent и закончить все. Проще говоря, теперь мы можем просто использовать реквизиты, переданные в каждый дочерний компонент во время сопоставления, и наши имя и фамилия будут отображаться:

И это все! (Если только я что-то совсем не забыл.) Чтобы увидеть рабочий пример CodePen, нажмите здесь.