Предупреждение: вы монтируете новый компонент кузова, когда предыдущий еще не был размонтирован.
Я пытаюсь создать страницу с макетом панели инструментов и страницу с макетом 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-теги должны находиться только в одном файле макета.