如何安装流利的 UI 与混音运行反应?我相信这很重要,可以在这里解决,因为它是社区中采用 office-UI-fabric-react 的绊脚石。
问问题
90 次
1 回答
0
在研究了 FluentUI 和 Remix 的文档以及一些 github 问题之后,这就是行之有效的方法。
- 编辑
root.tsx
. 添加{typeof document === "undefined" ? "__STYLES__" : null}
到头部标签。{typeof document === "undefined" ? "__SCRIPTS__" : null}
在结束正文标记之前添加。 - 编辑
entry.client.tsx
包括:
import { renderToString } from "react-dom/server"
import { RemixServer } from "remix"
import type { EntryContext } from "remix"
import { resetIds, Stylesheet } from "@fluentui/react"
const sheet = Stylesheet.getInstance()
export default function handleRequest(
request: Request,
responseStatusCode: number,
responseHeaders: Headers,
remixContext: EntryContext
) {
resetIds()
let markup = renderToString(
<RemixServer context={remixContext} url={request.url} />
)
markup = markup.replace(
"__STYLES__",
`<style data-merge-styles="true">${sheet.getRules(true)}</style>`
)
markup = markup.replace(
"__SCRIPTS__",
`<script type="text/javascript">
window.FabricConfig = window.FabricConfig || {};
window.FabricConfig.serializedStylesheet = ${sheet.serialize()};
</script>`
)
responseHeaders.set("Content-Type", "text/html")
return new Response("<!DOCTYPE html>" + markup, {
status: responseStatusCode,
headers: responseHeaders,
})
}
- 重新启动您的混音应用程序
参考:
https ://remix.run/docs/en/v1/guides/styling#css-in-js-libraries
https://github.com/microsoft/fluentui/wiki/Server-side-rendering-and-browserless -testing#nextjs-setup
https://github.com/microsoft/fluentui/issues/11411
如果您也想加载 fluentui 图标,请导入initializeIcons
您的页面并在任何函数之外调用它
于 2022-02-23T22:03:06.083 回答