React · Middle · Запитання 6 з 75

Чому не можна оголошувати компонент усередині іншого компонента?

function Page() {
  function Row({ item }) { return <li>{item}</li>; }
  return <ul>{items.map(i => <Row key={i} item={i} />)}</ul>;
}

Пояснення

Для React Row з різних рендерів - різні типи компонентів, адже це нові функції. Тому піддерево щоразу розмонтовується й монтується заново: втрачаються стан і фокус, а DOM перестворюється. Компоненти оголошують на верхньому рівні модуля.

Де почитати

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

React · Middle · запитання 6

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

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

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