Предупреждение: вы монтируете новый компонент кузова, когда предыдущий еще не был размонтирован.

Я пытаюсь создать страницу с макетом панели инструментов и страницу с макетом nextjs13 по умолчанию.

У меня проблема на странице панели инструментов.

Когда я иду по адресам в приборной панели

Отображение меню, пунктов и т.д. правильное, а для проверки ошибки я удалил компоненты и у меня осталось только две страницы с одной ссылкой.

Но все равно выдает ошибку в консоли браузера:

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

Пожалуйста, визуализируйте только один экземпляр, и если вам нужно смонтировать новый, убедитесь, что все предыдущие были размонтированы.

и :

Предупреждение: validateDOMNesting(...): не может отображаться как дочерний элемент .

2 ответа

У меня та же ошибка. Кажется, HTML и тело могут быть только в корневом макете. Хотя в документе это неясно, некоторые ссылки можно найти здесь https://nextjs.org/docs/app/building-your-application/routing/pages-and-layouts и здесь https://nextjs.org. /docs/app/build-your-application/routing/route-groups#opting-special-segments-into-a-layout

Итак, если ваш корневой макет выглядит так

      export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body>{children}</body>
    </html>
  );
}

Любой другой макет не должен иметь HTML и тело.

Код для макета в группе будет такой:

      export default function DashboardLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return <section>{children}</section>;
}

Кроме того, вам необходимо иметь в виду следующее, если у вас более 1 группы:

Если вы создаете корневой макет, а затем создаете макет в одной из групп, то во всех группах необходимо иметь индивидуальный макет.

Если вы получаете такое сообщение об ошибке, вы используете html-теги в двух разных файлах макета. html-теги должны находиться только в одном файле макета.

Другие вопросы по тегам