Skip to content

Commit 3c39491

Browse files
authored
Merge pull request #3 from weizwz/dev
Dev
2 parents 597e462 + ed4357d commit 3c39491

File tree

7 files changed

+50
-7
lines changed

7 files changed

+50
-7
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
.DS_Store
2+
.wrangler
23
/node_modules/
34

45
# React Router

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626

2727
部署 `npx run deploy`
2828

29+
*使用 pnpm start 启动时,ant 按钮样式会丢失,但构建无问题。本地启动,使用 pnpm dev 即可*
30+
2931
## 其他
3032

3133
带壳截图工具: https://mockuphone.com/

app/components/AntdRegistry.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { createCache, StyleProvider } from "@ant-design/cssinjs";
2+
import { useState } from "react";
3+
4+
export default function AntdRegistry({ children }: { children: React.ReactNode }) {
5+
const [cache] = useState(() => createCache());
6+
return <StyleProvider cache={cache}>{children}</StyleProvider>;
7+
}

app/entry.client.tsx

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { HydratedRouter } from "react-router/dom";
2+
import { startTransition, StrictMode, useState } from "react";
3+
import { hydrateRoot } from "react-dom/client";
4+
import { StyleProvider, createCache } from "@ant-design/cssinjs";
5+
import "@ant-design/v5-patch-for-react-19";
6+
7+
function Client() {
8+
const [cache] = useState(() => createCache());
9+
return (
10+
<StyleProvider cache={cache}>
11+
<HydratedRouter />
12+
</StyleProvider>
13+
);
14+
}
15+
16+
startTransition(() => {
17+
hydrateRoot(
18+
document,
19+
<StrictMode>
20+
<Client />
21+
</StrictMode>
22+
);
23+
});

app/entry.server.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import type { AppLoadContext, EntryContext } from "react-router";
22
import { ServerRouter } from "react-router";
33
import { isbot } from "isbot";
4-
import { renderToReadableStream } from "react-dom/server";
4+
import { renderToReadableStream } from "react-dom/server.edge";
5+
import { createCache, extractStyle, StyleProvider } from "@ant-design/cssinjs";
56

67
export default async function handleRequest(
78
request: Request,
@@ -11,8 +12,13 @@ export default async function handleRequest(
1112
loadContext: AppLoadContext
1213
) {
1314
let userAgent = request.headers.get("user-agent");
15+
16+
const cache = createCache();
17+
1418
let stream = await renderToReadableStream(
15-
<ServerRouter context={routerContext} url={request.url} />,
19+
<StyleProvider cache={cache}>
20+
<ServerRouter context={routerContext} url={request.url} />
21+
</StyleProvider>,
1622
{
1723
signal: request.signal,
1824
onError(error: unknown) {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"typecheck": "react-router typegen && tsc"
1212
},
1313
"dependencies": {
14+
"@ant-design/cssinjs": "^1.24.0",
1415
"@ant-design/icons": "^6.0.0",
1516
"@ant-design/v5-patch-for-react-19": "^1.0.3",
1617
"antd": "^5.26.2",

pnpm-lock.yaml

Lines changed: 8 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)