You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Next.js集成Fluent UI时的TypeScript lint错误?

Next.js集成Fluent UI SSR时RendererProvider类型错误:Property 'children'不存在

问题描述

按照Fluent UI SSR文档在Next.js中集成时,构建出现类型错误:

Type '{ children: Element; renderer: any; }' is not assignable to type 'IntrinsicAttributes & RendererProviderProps'.
Property 'children' does not exist on type 'IntrinsicAttributes & RendererProviderProps'

错误原因

当前版本的RendererProvider API已变更,不再支持通过children属性传递组件树,原文档示例可能适配旧版本,导致代码与当前库的类型定义冲突。

解决方案

移除RendererProvider,将渲染器实例直接传递给FluentProvider的renderer属性即可完成渲染器注入,修正后的_app.js代码如下:

import {
  createDOMRenderer,
  SSRProvider,
  FluentProvider,
  webLightTheme
} from '@fluentui/react-components'
import '../styles/styles.css'

function MyApp({ Component, pageProps, renderer }) {
  return (
    <SSRProvider>
      <FluentProvider 
        theme={webLightTheme}
        renderer={renderer || createDOMRenderer()}
      >
        <Component {...pageProps} />
      </FluentProvider>
    </SSRProvider>
  )
}

export default MyApp

服务端渲染补充配置

如果需要在服务端渲染场景(如getServerSideProps/getStaticProps)中使用,需在页面的服务端逻辑中创建SSR渲染器并传递给页面props:

// 页面文件(如pages/index.js)
import { createSSRRenderer } from '@fluentui/react-components';

export async function getServerSideProps() {
  const renderer = createSSRRenderer();
  return { props: { renderer } };
}

说明

Fluent UI v9后续版本调整了渲染器的注入方式,FluentProvider已支持直接接收renderer参数,无需再通过RendererProvider作为容器包裹组件树。

内容的提问来源于stack exchange,提问作者Hermes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:54:29