小编J V*_*J V的帖子

Ant design v4中如何动态切换主题?

我想使用 Ant design v4动态实现暗/亮主题之间的切换

可以使用其他 CSS/LESS 导入自定义主题,如此处所述:https : //ant.design/docs/react/customize-theme#Use-dark-theme

但我不确定如何从代码中动态地在这些主题之间切换。我的 React 应用程序 ( darkMode) 中有一个变量,用于指示当前是否使用了深色主题。更改此变量时,我必须提供正确的 CSS 文件。但是我不能仅在满足某些条件时动态导入 CSS,因为这不是导入的工作方式。

我试图require在下面的代码中做一些乱七八糟的事情,但这是非常非常糟糕的方法,它仍然无法正常工作(因为 CSS 被注入但可能没有被撤回。):

const Layout = () => {
  ...
  useEffect(() => {
    if (darkMode === true) {
      require("./App.dark.css")
    } else {
      require("./App.css")
    }
  }, [darkMode])

  return (
    <Home />
  )
}
Run Code Online (Sandbox Code Playgroud)

应该可以以某种方式切换主题,因为它已经在 Ant 设计文档 ( https://ant.design/components/button/ ) 中实现:

Antd 文档中的主题切换

你知道怎么做吗?

谢谢!

css less reactjs antd

16
推荐指数
2
解决办法
6721
查看次数

带有来自 Typescript 的路径的 Monorepo 不起作用

我有具有以下文件结构的 monorepo(纱线工作区):

??? client                (workspace @client)
?   ??? package.json
?   ??? tsconfig.json     (extended tsconfig)
??? server                (workspace @server)
?   ??? getData.ts
?   ??? package.json
?   ??? tsconfig.json     (extended tsconfig)
??? shared
?   ??? sanitizeData.ts
??? package.json          (monorepo root)
??? tsconfig.json         (base tsconfig)
Run Code Online (Sandbox Code Playgroud)

我想从shared/sanitizeData.tsin使用函数server/getData.ts

我尝试paths从 Typescript 中使用,根据文档,它看起来很简单,但我做错了:

error TS2307: Cannot find module '@shared/sanitizeData'.
Run Code Online (Sandbox Code Playgroud)

server/tsconfig.json

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "baseUrl": ".",
    "rootDir": "../",
    "outDir": "build",
    "paths": {
      "@shared/*": ["shared/*"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

server/getData.js

??? …
Run Code Online (Sandbox Code Playgroud)

javascript typescript tsconfig monorepo yarn-workspaces

7
推荐指数
1
解决办法
1904
查看次数