squadbrodyaga
@squadbrodyaga
帆は風を変えた

Ошибка Failed prop type: Invalid prop `children` supplied to `ForwardRef(Box)`, expected a ReactNode. Что я делаю не так?

Здравствуйте, не знаю является ли эта ошибка React'а или Next'а.
Когда я пытаюсь использовать асинхронный компонент, то я получаю ошибку.

// app/posts/[slug]/page.tsx

async function Post ({ postId }: { postId: string }) {
  const post = await fetch(`http://.../posts/${postId}`).then((res) => res.json())

  return <div>...<div/>
}


export default function Page({ params }: { params: { slug: string } }) {
  const { slug} = params
  return (
    <Box>
      <Post postId={slug}/>
    </Box>
  )
}

Ошибка в консоли:
// Warning: Failed prop type: Invalid prop `children` supplied to `ForwardRef(...)`, expected a ReactNode.


Если функция Post не асинхронная, то никаких ошибок не будет, но тогда я не смогу использовать await в коде
  • Вопрос задан
  • 310 просмотров
Решения вопроса 2
Aetae
@Aetae
Тлен
React так не умеет. Сам механизм react делает такое невозможным.
Все компоненты синхронны(кроме lazy, но это совсем другое).
Ты должен свою асинхронную функцию вызвать в useEffect, а пока она грузится показывать какой-нить лоадер.
Ответ написан
squadbrodyaga
@squadbrodyaga Автор вопроса
帆は風を変えた
Решил проблему. Причина была в компонентах MUI. Нужно было добавить тег div между компонентами MUI и Post
export default function Page({ params }: { params: { slug: string } }) {
  const { slug} = params
  return (
    <Box>
      <div>
        <Post postId={slug}/>
      </div>
    </Box>
  )
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы