next.js 下一个错误13,在异步组件内获取数据的类型脚本

toe95027  于 2022-12-23  发布在  其他
关注(0)|答案(1)|浏览(160)

HERE ERROR IMAGE

export const Filter = async (): Promise<JSX.Element> => {
  const { data: categories } = await api.get('/categories/')

  return (
    <div className='w-full h-full relative'>
      <Container className='sticky top-[6rem] max-lg:col-span-2'>
        <div className='grid grid-cols-1 gap-6 max-h-[40rem] overflow-y-scroll overflow-hidden'>

           
         There is the problem i think
          <Container className='flex items-center flex-col'>
            <SmallHeading>Kategoria</SmallHeading>
            <ul className='grid grid-cols-1 gap-4 max-h-[25rem] overflow-y-scroll overflow-hidden w-full'>
              {categories.map(c => {
                return <CategoryItem key={c.id} href={c.name} name={c.name} image={c.img} isSmall={true} />
              })}
            </ul>
          </Container>
           

        </div>
      </Container>
    </div>
  )
}

“Filter”不能用作JSX组件。其返回类型“Promise”不是有效的JSX元素。类型“Promise”缺少类型“ReactElement〈any,any〉”的以下属性:类型、 prop 、键
帮帮忙我会尽力的
我尝试了什么是在我上面给的代码,我不明白为什么这样的错误出现

tktrz96b

tktrz96b1#

我认为你只能在app目录下使用异步组件。
这个新的数据获取模型目前正在由React团队开发。我们建议阅读React RFC对promises的支持,它在服务器组件中引入了async/await,并为客户端组件引入了一个新的use()钩子。虽然你可以尝试一下,但它还不稳定。我们将不断更新这些文档以反映最新的发展。
警告:您可以在布局和页面中使用async/await,它们是服务器组件。在其他组件中使用async/await和TypeScript可能会导致JSX的响应类型出错。我们正在与TypeScript团队合作以在上游解决此问题。作为临时解决方法,您可以使用{/* @ts-expect-error Server Component */}禁用组件的类型检查。

相关问题