Изучаю React по видеоурокам. Видимо, автор что то забыл рассказать.
Код ниже рабочий, но у меня нет достаточного понимания некоторых моментов.
Profile.jsx
const Profile = () => {
/* Информация для сообщений - текст сообщений и лайки */
let posts = [
{id: 1, message: "Пост 1", likesCount:1},
{id: 2, message: "Пост 2", likesCount:2},
]
return (
<div>
<MyPosts posts={posts} />
</div>
);
}
В файле выше вроде всё ясно. Мы передали объект-массив в качестве props в компоненту MyPosts.
Фактически вызвали функцию MyPosts с аргументом - массивом.
MyPosts.jsx
const MyPosts = (props) =>
{
let postsElements = props.posts.map( p => <Post message={p.message} likesCount={p.likesCount} /> )
return (
<div className={css.MyPosts}>
<div className={css.posts}>
/* Вывод сообщений */
{postsElements}
</div>
</div>
);
}
А вот тут не всё понятно.
Компонента принимает переданный массив (props). То есть данные из Profile пришли.
Далее что то передается в переменную postsElements . Эта строка, её логика не до конца понятна.
Да, я вижу что из props идет обращение к объекту posts (переданным данным) и дальше они "мепятся"?
А внутри этого стрелочная функция возвращающая результат вызова компоненты Post с переданными параметрами.
В общем не до конца понятно что точно там происходит.
Ну и ниже незнакомая мне конструкция {postsElements}.
PS
Я предполагал, что когда в props придет массив, его в цикле передадут в компоненту Post.
Т.е. вызовут её несколько раз, для каждой записи массива. Но тут что то иное...