Патерни проєктування · Middle · Запитання 11 з 75

Як рендерити дерево коментарів довільної вкладеності?

function Comment({ comment }) {
  return (
    <li>
      {comment.text}
      {comment.replies.length > 0 && (
        <ul>{comment.replies.map(r => <Comment key={r.id} comment={r} />)}</ul>
      )}
    </li>
  );
}

Пояснення

Вузол і листок обробляються однаково, тому компонент викликає сам себе для дочірніх елементів. Для дуже глибоких або великих дерев додають віртуалізацію чи «Показати ще», а дані зберігають нормалізовано.

Де почитати

Помилка в запитанні

Патерни проєктування · Middle · запитання 11

Перевірте себе

Пройдіть тест Патерни проєктування · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест