Pass an Array as Props

Последняя задача продемонстрировала, как передавать информацию из родительского компонента в дочерний компонент в качестве props или свойств. В этой задаче рассматривается, как массивы могут быть переданы в качестве props . Чтобы передать массив элементу JSX, он должен рассматриваться как JavaScript и завернут в фигурные скобки.

<ParentComponent>
  <ChildComponent colors={["green", "blue" , "red" ]} />
</ParentComponent>
Затем дочерний компонент имеет доступ к массиву colors через свойства. При доступе к свойству могут использоваться методы массива, такие как join().
const ChildComponent = (props) => <p>{props.colors.join(', ')}</p>
Это объединит все элементы массива colors в строку, разделенную запятой. В результате получится: <p>green, blue, red</p> Позже мы узнаем о других распространенных методах рендеринга массивов данных в React.

Важное замечание: Если при рендеринге элементов массива вы возвращаете не просто строки, а другие компоненты или теги, необходимо в каждый из них передать свойство key. Например:

[1,2,3,2,1].map(value, index) => <li key={index}>Item {value}</li>

Здесь так же обратите внимание, что для значения атрибута key я использовал переменную index, которая содержит в себе порядковый номер каждоый итерации при перечислении массива. Подробней с Array.map можно ознакомиться здесь. Дело в том, что key обязан быть уникальным, а в нашем массиве, как мы видим, значения не уникальные. Но если у вас массив с уникальными значениями (и вы уверены в этом), то конечно же лучше использовать их, по ряду причин. Просто помните об этом.

.

В редакторе кода есть компоненты List и ToDo . При рендеринге каждого List из компонента ToDo передайте свойство tasks назначенное массиву заданий, например ["walk dog", "workout"] . Затем войдите в этот массив tasks в компоненте List , выведя его значения в теге p. Используйте join(", ") чтобы отобразить все элементы массива props.tasks в элементе p как список строк, разделенный запятыми. В сегодняшнем списке должно быть не менее двух задач, а завтра должно быть не менее 3 задач.