首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据下一个主题有条件地导入css包

根据下一个主题有条件地导入css包
EN

Stack Overflow用户
提问于 2022-03-01 00:12:06
回答 2查看 226关注 0票数 0

我在我的网站上使用下一个主题为暗/光模式,并使用高亮显示代码高亮。当主题是黑暗时,我想导入一个黑暗变体,反之亦然。代码:

代码语言:javascript
复制
import { useTheme } from "next-themes";    
import "highlight.js/styles/atom-one-light.css";
//import "highlight.js/styles/atom-one-dark.css";
export default function App(){
    const {theme}=useTheme()
    return<div>abc</div>
}
EN

回答 2

Stack Overflow用户

发布于 2022-03-01 11:08:30

如果不严格,可以尝试使用棱镜-反应-渲染器突出显示代码。

棱镜-反应-渲染器暗/光主题:

  • duotoneDark
  • duotoneLight
  • nightOwl
  • nightOwlLight
  • vsDark
  • vsLight
代码语言:javascript
复制
import Highlight, { defaultProps } from "prism-react-renderer";
import nightOwl from 'prism-react-renderer/themes/nightOwl';
import nightOwlLight from 'prism-react-renderer/themes/nightOwlLight';

const { theme } = useTheme();
const mapTheme = {
  light: nightOwlLight,
  dark: nightOwl,
};

return (
  <Highlight
     {...defaultProps}
     theme={mapTheme[theme]}
     code={children.trim()}
     language={language}>
     {/* custom file name, clipboard, highlighting line, line number, ... */}
  </Highlight>
);
票数 1
EN

Stack Overflow用户

发布于 2022-03-02 08:27:11

我会说是,我的方法是创建一个临时文件并将其传递给一个主题支柱,然后在这个临时文件中,我将使用'React.useEffect‘钩子有条件地导入基于主题名称的文件

您可以使用以下代码动态导入文件:

代码语言:javascript
复制
Import "filepath"
# or lazy import would be like
React.lazy(() => import "filepath")
# additionally you can use async await
await import("filepath")
# or import("filepath").then(()=> {})

看看这个反应码分裂

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71302431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档